无法从左侧更改 layout_gravity

can not change layout_gravity from left

我有一个带有 3 个子线性布局的简单 LinerLayout,每个都有一个文本视图 当我试图将文本视图与中心或右侧对齐时,没有任何反应。它总是向左对齐,为什么?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_weight="1"
        android:id="@+id/alert_type"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView

            android:id="@+id/type"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="TYPE"/>

        </LinearLayout>

    <LinearLayout
        android:layout_weight="1"
        android:layout_below="@id/alert_type"
        android:id="@+id/alert_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/alert_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="ALERT"/>
        </LinearLayout>

    <LinearLayout
        android:layout_weight="1"
        android:layout_below="@id/alert_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/alert_details"
            android:text="DETAILS" />
        </LinearLayout>

</LinearLayout>

设置gravity喜欢

android:gravity="center"

TextViewandroid:layout_width="wrap_content" 更改为 match_parent

您需要设置

android:gravity="center" 

每个 TextView'sLinearLayout

更改 layout_width="wrap_content" 和 layout_gravity="centre"

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

<LinearLayout
    android:id="@+id/alert_type"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1" >

    <TextView
        android:id="@+id/type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="TYPE" />
</LinearLayout>

<LinearLayout
    android:id="@+id/alert_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/alert_type"
    android:layout_gravity="center"
    android:layout_weight="1" >

    <TextView
        android:id="@+id/alert_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="ALERT" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/alert_layout"
    android:layout_gravity="center"
    android:layout_weight="1" >

    <TextView
        android:id="@+id/alert_details"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DETAILS" />
</LinearLayout>

您可以改用 RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
    android:layout_weight="1"
    android:id="@+id/alert_type"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView

        android:id="@+id/type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:text="TYPE"/>

</RelativeLayout>

<RelativeLayout
    android:layout_weight="1"
    android:layout_below="@id/alert_type"
    android:id="@+id/alert_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/alert_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="ALERT"/>
</RelativeLayout>

<RelativeLayout
    android:layout_weight="1"
    android:layout_below="@id/alert_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/alert_details"
        android:text="DETAILS" />
</RelativeLayout>
</LinearLayout>

或者你可以对线性布局使用重力而不是文本视图..like

<LinearLayout
    android:layout_weight="1"
    android:id="@+id/alert_type"
    android:gravity="right"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TYPE"/>

</LinearLayout>

使用以下 XML 代码进行布局,其中我将所有文本视图设置在中心位置

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/alert_type"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TextView
            android:id="@+id/type"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TYPE" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/alert_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TextView
            android:id="@+id/alert_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="ALERT" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TextView
            android:id="@+id/alert_details"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="DETAILS" />
    </LinearLayout>

</LinearLayout>

您只需在线性布局中添加 android:gravity="center" 即可。您还可以提供任何对齐方式,例如右对齐、center_vertical 等