无法从左侧更改layout_gravity

时间:2015-05-05 08:50:36

标签: android layout

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

<?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>

5 个答案:

答案 0 :(得分:1)

gravity设置为

android:gravity="center"

答案 1 :(得分:1)

android:layout_width="wrap_content"的{​​{1}}更改为TextView

答案 2 :(得分:1)

您可以使用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>

或者您可以将重力用于线性布局而不是textview..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>

答案 3 :(得分:0)

您需要设置

android:gravity="center" 

为每个TextView'sLinearLayout

答案 4 :(得分:0)

使用以下XML代码进行布局,我将所有textview设置在中心位置

<?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 =&#34; center&#34;在你的线性布局中。您还可以提供任何对齐,例如right,center_vertical等。