Question

J'ai été déconner avec ça pendant quelques jours maintenant, nous espérons que quelqu'un ici peut me donner un coup de main.

J'ai une mise en page simple à deux colonnes, le côté gauche est une barre de navigation avec des boutons, le côté droit est un panneau de contenu. Lorsque l'utilisateur tape l'un des boutons (disons, le troisième vers le bas), je voudrais avoir une vue flottante aligné à droite de ce bouton, mais flottant au-dessus du volet contenu. Voici une image pour illustrer ce que je veux dire: Mise en page

Tout ce que j'ai essayé enfile le menu flottant dans la barre de navigation ou à l'intérieur du panneau de contenu, ce qui est pas ce que je veux. Des idées? Voici en gros ce que j'ai à ce jour:

<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>
Était-ce utile?

La solution

Un FrameLayout vous permet d'avoir une vue qui se chevauchent une autre vue. Je ne suis pas sûr qu'il est logique de les avoir avec une seule vue enfant, que vous avez dans votre exemple. Essayez d'avoir un FrameLayout au plus haut niveau, avec votre point de vue « statique » comme le premier élément enfant, et le menu flottant comme le deuxième enfant.

Les documents de développeur ont une bonne vue d'ensemble les types de mise en page, il pourrait vous aider à démarrer.

Autres conseils

RelativeLayout est ce que vous voulez.
FrameLayout ne doit avoir un enfant, et est donc, en général, utilisé uniquement pour un espace réservé où d'autres dispositions viennent plus tard (comme le cadre principal de l'activité).
AbsoluteLayout est dépréciée et ne doit pas être utilisé.

RelativeLayout permet aux vues de se chevaucher, et permet de faire, à peu près, tout ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top