Antecedentes: cuando se establece LinearLayout android:orientation="vertical"
, solo tendrán efecto los atributos de gravedad en la dirección horizontal, como izquierda, derecha, centro_horizontal. En este momento, no es válido agregar android:gravity="bottom"
o establecer valores de atributos solo en el último componente .layout_marginBottom
android:layout_weight="1"
Por lo tanto, si desea colocar el último control en la parte inferior del diseño principal, puede agregar atributos a un control operable que no necesita colocarse en la parte inferior .
Ejemplo: (Se eliminó algún código no esencial irrelevante para este ejemplo)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="68dp"
android:layout_marginTop="40dp"
android:gravity="center_vertical"
android:text="@string/read_head"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:layout_weight="1" //这里
android:text="@string/read_detail"/>
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginBottom="74dp"
android:src="@drawable/reading"/>
</LinearLayout>
Cuando no se agrega esta línea de código, muestra:
Después de agregar: