layout_gravity

如何使用layout_gravity调整布局位置

小樊
93
2024-10-16 20:02:27
栏目: 编程语言

layout_gravity是Android布局中的一个属性,用于指定子视图在其父布局中的位置。这个属性可以应用于FrameLayoutLinearLayoutRelativeLayoutConstraintLayout等布局容器中的子视图。

以下是使用layout_gravity调整布局位置的一些示例:

  1. 在FrameLayout中
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|start"
        android:text="Top Left"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:text="Bottom Right"/>

</FrameLayout>
  1. 在LinearLayout中(注意:LinearLayout默认是水平排列的,所以layout_gravity将影响子视图在垂直方向上的位置):
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="Center Vertical"/>

</LinearLayout>
  1. 在RelativeLayout中
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp"
        android:text="Top"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView1"
        android:text="Below Top"/>

</RelativeLayout>
  1. 在ConstraintLayout中(需要先添加约束库):
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:text="Top Left"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/textView1"
        app:layout_constraintEnd_toEndOf="parent"
        android:text="Bottom Right"/>

</androidx.constraintlayout.widget.ConstraintLayout>

通过合理地设置layout_gravity属性,你可以轻松地调整子视图在其父布局中的位置。

0
看了该问题的人还看了