Domanda Layout lineare Android - Come mantenere l'elemento in fondo alla vista?


Ho un TextView che voglio appuntare in fondo a un'attività paesaggistica che sta usando LinearLayout con elementi disposti verticalmente.

Ho impostato android:gravity="bottom" sulla visualizzazione del testo, ma a lui piace ancora essere appena sotto l'ultimo elemento del LinearLayout esattamente quello che non voglio che faccia.

Eventuali suggerimenti?


62
2018-03-24 20:50


origine


risposte:


Rimuovere TextView dal LinearLayout, quindi inserire LinearLayout e TextView all'interno di RelativeLayout. Aggiungi l'attributo android:layout_alignParentBottom="true" al TextView. Con tutto lo spazio dei nomi e altri attributi eccetto per l'attributo sopraelencato:

<RelativeLayout>
  <LinearLayout>
    <!-- All your other elements in here -->
  </LinearLayout>
  <TextView
    android:layout_alignParentBottom="true" />
</RelativeLayout>

94
2018-03-24 21:01



Dovrai espandere una delle tue viste in alto per riempire lo spazio rimanente impostando android:layout_weight="1" su di essa. Questo spingerà la tua ultima vista verso il basso.

Ecco un breve abbozzo di ciò che intendo:

<LinearLayout android:orientation="vertical">
    <View/>
    <View android:layout_weight="1"/>
    <View/>
    <View android:id="@+id/bottom"/>
</LinearLayout>

dove si trova ciascuna altezza vista bambino "wrap_content" e tutto il resto lo è "fill_parent".


95
2018-03-24 20:54



Penso che sarà la soluzione perfetta:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- Other views -->
    <Space
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <!-- Target view below -->
    <View
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

</LinearLayout>

44
2017-10-01 11:53



Dovresti inserire il parametro gravità al fondo non nella vista testuale ma nel layout lineare. Come questo:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="bottom|end">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Something"/>
</LinearLayout>

6
2017-07-03 10:33



step 1 : create two view inside a linear layout
step 2 : first view must set to android:layout_weight="1"
step 3 : Second view will automatically putted downwards


<LinearLayout
android:id="@+id/botton_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

    <View
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

    <Button
    android:id="@+id/btn_health_advice"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>


</LinearLayout>

3
2017-09-24 05:36



Puoi anche usare

android:layout_gravity="bottom"

per la tua vista testuale


0
2017-11-25 11:33



MI PIACE QUESTO

 <LinearLayout
android:id="@+id/LinearLayouts02"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom|end">

<TextView
    android:id="@+id/texts1"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:layout_weight="2"
    android:text="@string/forgotpass"
    android:padding="7dp"
    android:gravity="bottom|center_horizontal"
    android:paddingLeft="10dp"
    android:layout_marginBottom="30dp"
    android:bottomLeftRadius="10dp"
    android:bottomRightRadius="50dp"
    android:fontFamily="sans-serif-condensed"
    android:textColor="@color/colorAccent"
    android:textStyle="bold"
    android:textSize="16sp"
    android:topLeftRadius="10dp"
    android:topRightRadius="10dp"
   />

</LinearLayout>

0
2018-03-21 12:58



prova questo

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textViewProfileName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

-2
2018-02-27 14:30