Android XML:以相对布局为中心 - android:layout_centerHorizo​​ntal =" true"不工作?

时间:2014-08-25 15:30:32

标签: android xml view centering

我正在尝试使用android:id="@+id/tvStroopCountdown"将底部视图(android:layout_centerHorizontal="true")置于我的XML布局中。

然而它不起作用,而是位于屏幕左侧。

为什么不,我该如何解决这个问题?

完整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"
    android:background="@drawable/menubackground"
    >

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

        <TextView
            android:id="@+id/tvStroopColor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="3dp"
            android:layout_marginTop="11dp"
             android:layout_marginBottom="15dp"
            android:text="  "
            android:textSize="50dp" 
            android:background="#ffffff"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center" >

        <Button
            android:id="@+id/btnStroop1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" " 
            android:textSize="40dp"
            />

        <Button
            android:id="@+id/btnStroop2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" " 
            android:textSize="40dp"
            />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tvStroopResults"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="3dp"
            android:text="  "
            android:layout_centerHorizontal="true"
            android:textSize="35dp" />

        <TextView
            android:id="@+id/tvStroopScore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tvStroopResults"
            android:layout_centerHorizontal="true"
            android:paddingBottom="3dp"
            android:text=" "
            android:textSize="35dp" />

        <TextView
            android:id="@+id/tvStroopSeeMeditation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tvStroopScore"
            android:layout_centerHorizontal="true"
            android:paddingBottom="3dp"
            android:text=" "
            android:textSize="35dp" />

        <TextView
            android:id="@+id/tvStroopSeeAttention"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tvStroopSeeMeditation"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="4dp"
            android:text=" "
            android:textSize="35dp" />

        <TextView
            android:id="@+id/tvStroopCountdown"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tvStroopSeeAttention"
            android:layout_centerHorizontal="true"
            android:ems="10"
            android:textSize="30dp" 
            android:hint=" " >
        </TextView>
    </RelativeLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:7)

将android:layout_centerHorizo​​ntal =“true”更改为 机器人:重力= “CENTER_HORIZONTAL”。您所编写的内容将TextView置于RelativeLayout中,但显示TextView左侧的文本。这不起作用,因为您的TextView具有与RelativeLayout相同的宽度,因为您使用了fill_parent。

答案 1 :(得分:0)

使用(android:layout_width =“wrap_content”)而不是“fill_parent”。那一切都会好起来的。因此TextView的XML将如下所示:

 <TextView
        android:id="@+id/tvStroopCountdown"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvStroopSeeAttention"
        android:layout_centerHorizontal="true"
        android:hint="this is right"
        android:textSize="30dp"
       />