Ho questa situazione, ho 4 widget in un RelativeLayout nello stesso ordine seguente:
- TextView
- Visualizzazione elenco
- TextView
- Pulsante
Questo è l'XML per il layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pedidoClienteRelativeLayout">
<TextView
android:id="@+id/nameLabel"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:maxLines="4"
android:text="Customer Name" />
<LinearLayout
android:id="@+id/ordersLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/nameLabel"
android:layout_above="@+id/totalOrdersLabel"
android:orientation="vertical" >
<ListView
android:id="@+id/booksListView"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:dividerHeight="1dp" >
</ListView>
</LinearLayout>
<TextView
android:id="@+id/totalOrdersLabel"
android:layout_above="@+id/confirmOrderButton"
android:layout_alignParentLeft="true"
android:text="Total" />
<Button
android:id="@+id/confirmOrderButton"
android:layout_alignParentBottom="true"
android:text="Confirm Order" />
</RelativeLayout>
E questo è più o meno il risultato:
Come puoi vedere funziona. Il problema arriva quando da Java devo rendere invisibile il pulsante in base ad alcune condizioni. Quindi il TextView che si trovava sopra il pulsante non ha alcun controllo da usare come riferimento android:layout_above="@+id/confirmOrderButton"
e per questo motivo la textview è mostrata nella parte superiore del Layout e il ListView semplicemente non viene mostrato.
Penso che se potessi rimuovere il android:layout_above="@+id/confirmOrderButton"
dal secondo TextView e aggiungi android:layout_alignParentBottom="true"
, questo dovrebbe risolvere il problema. Il fatto è che non ho assolutamente idea di come farlo, quindi sarei davvero grato se potessi aiutarmi.
Grazie in anticipo.
risposte:
2 per risposta № 1Impostare il totalOrdersLabel
TextView "s android:layout_alignWithParentIfMissing
al vero
<TextView
android:id="@+id/totalOrdersLabel"
android:layout_above="@+id/confirmOrderButton"
android:layout_alignParentLeft="true"
android:layout_alignWithParentIfMissing="true"
android:text="Total" />