web-dev-qa-db-ja.com

Androidフローティングビュー(他のビューの上)

私はこれを数日間いじっています。うまくいけば、ここの誰かが私に手を貸してくれるといいのですが。

私はシンプルな2列のレイアウトで、左側がボタン付きのナビゲーションバー、右側がコンテンツパネルです。ユーザーがボタンの1つ(たとえば、3番目のボタンを下)をタップすると、フローティングビューがこのボタンの右側に揃えられますが、コンテンツペインの上に表示されます。これが私が何を意味するかを説明するための写真です: Layout

私が試したすべてのものは、ナビゲーションバー内またはコンテンツパネル内のフローティングメニューを押し込んでいますが、これは私が望むものではありません。何か案は?これが基本的に私が今まで持っているものです:

<RelativeLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="horizontal"
>
    <LinearLayout
        Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:orientation="vertical"
        Android:layout_alignParentLeft="true"
        Android:id="@+id/navigation_bar"
    >
        <FrameLayout 
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.14"
        >
            <ImageButton 
                Android:id="@+id/button1_btn"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:background="@drawable/icon"
                Android:layout_gravity="center"
            />
        </FrameLayout>
        <FrameLayout
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.14"
        >
            <ImageButton 
                Android:id="@+id/button2_btn"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:background="@drawable/icon"
                Android:layout_gravity="center"
            />
        </FrameLayout>
    </LinearLayout>
    <FrameLayout
        Android:id="@+id/content"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_weight="0.14"
        Android:layout_toRightOf="@id/navigation_bar"
    >
    </FrameLayout>
</RelativeLayout>
22
dave paola

FrameLayoutを使用すると、ビューを別のビューに重ねることができます。あなたの例のように、子ビューを1つだけ持つことは意味がないと思います。最初の子要素として「静的」ビューを使用し、2番目の子としてフローティングメニューを使用して、FrameLayoutを最高レベルにしてみてください。

開発者向けドキュメント には、レイアウトタイプの概要がわかります。

16
Cheryl Simon