Domanda

Sono stato nei guai con questo per un paio di giorni ormai, si spera che qualcuno qui mi può dare una mano.

Ho un semplice layout a due colonne, il lato sinistro è una barra di navigazione con i pulsanti, il lato destro è un pannello di contenuti. Quando l'utente tocca uno dei pulsanti (diciamo, la terza giù), vorrei avere una visione flottante allineata alla destra di questo pulsante ma galleggia sulla parte superiore del riquadro del contenuto. Ecco una foto per illustrare quello che voglio dire: Layout

Tutto quello che ho provato infila il menu mobile all'interno della barra di navigazione o all'interno del pannello di contenuti, che non è quello che voglio. Qualche idea? Qui è sostanzialmente quello che ho finora:

<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>
È stato utile?

Soluzione

Un FrameLayout permette di avere una vista sovrapposizione un'altra vista. Non sono sicuro che ha senso averli con una sola vista del bambino, come avete nel vostro esempio. Prova avere un FrameLayout al più alto livello, con la vista "statico", come il primo elemento figlio, e il menu fluttuante come il secondo figlio.

I href="http://developer.android.com/intl/guide/topics/ui/layout-objects.html" rel="nofollow noreferrer"> documenti sviluppatori hanno una buona visione i tipi di layout, potrebbe aiutarti a iniziare.

Altri suggerimenti

RelativeLayout è ciò che si desidera.
FrameLayout deve avere un solo figlio, e pertanto, di solito, usato solo per un segnaposto dove altri layout vengono dopo (ad esempio il telaio principale dell'attività).
AbsoluteLayout è obsoleto e non dovrebbe essere utilizzato.

RelativeLayout consente la vista a sovrapporsi, e permette di fare, più o meno, tutto quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top