【问题标题】:Android XML: Centring a view in relative layout- android:layout_centerHorizontal="true" not working?Android XML:以相对布局居中视图 - android:layout_centerHorizo​​ntal="true" 不起作用?
【发布时间】:2014-10-18 19:22:29
【问题描述】:

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

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

为什么不,我该如何解决?

完整的 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>

【问题讨论】:

    标签: android xml view centering


    【解决方案1】:

    将 android:layout_centerHorizo​​ntal="true" 更改为 android:gravity="center_horizo​​ntal"。您编写的内容将 TextView 置于 RelativeLayout 的中心,但将文本显示在 TextView 的左侧。这不起作用,因为您的 TextView 与 RelativeLayout 具有相同的宽度,因为您使用了 fill_parent。

    【讨论】:

    • 请不要更改此答案。 android:gravityTextView 的有效属性。这个答案是正确的,被接受了。
    【解决方案2】:

    使用 (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"
           />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2017-01-18
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多