22

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

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

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

<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>
4

2 に答える 2

16

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

開発者向けドキュメントには、レイアウト タイプの概要がよくまとめられています。

于 2010-02-15T20:51:08.673 に答える
-12

RelativeLayoutあなたが望むものです。
FrameLayout子は 1 つだけ持つ必要があるため、通常、他のレイアウトが後で来るプレースホルダー (アクティビティのメイン フレームなど) にのみ使用されます。
AbsoluteLayoutは非推奨であり、使用しないでください。

RelativeLayoutビューを重ねることができ、ほぼ何でも好きなことを行うことができます。

于 2011-10-15T10:04:11.940 に答える