/ / Come ancorare un Widget alla fine di un'attività, se il widget che era in quella posizione è reso invisibile - android, android-layout, relativelayout, android-ui

Come ancorare un Widget alla fine di un'attività, se il widget che era in quella posizione è reso invisibile - android, android-layout, relativelayout, android-ui

Ho questa situazione, ho 4 widget in un RelativeLayout nello stesso ordine seguente:

  1. TextView
  2. Visualizzazione elenco
  3. TextView
  4. 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:

inserisci la descrizione dell'immagine qui

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 № 1

Impostare 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" />