Android相对布局中的gravity问题

34

如何将id为"naslov"的TextView居中显示?我也尝试了使用layout_gravity="center"来居中,但这样并不起作用。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView   
    android:id="@+id/naslov"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20dip"
    android:text="Povzetek"
    android:gravity="center"/>
   <TextView   
    android:id="@+id/aha"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="10dip"
    android:text="Vseh oddaj:"
       android:layout_below="@id/naslov"/>  
 </RelativeLayout> 

10
在RelativeLayout中,属性gravity不会产生任何影响。 - J.G.Sebring
可能是Android和布局的重复问题。 - Kuba hasn't forgotten Monica
4个回答

56
 android:layout_centerHorizontal="true"

46
 android:layout_centerHorizontal="true"

还有一个

android:layout_centerInParent="true"

RelativeLayout属性的完整列表在这里

另外,您可以告诉TextView填充整个父容器,然后将gravity设置为center。 这样它就会在textView内居中显示实际文本。


6

补充回答

作为对这个问题的更一般性回答,layout_gravity不能用于RelativeLayout的子视图。它适用于LinearLayoutFrameLayout。然而,RelativeLayout的子视图仍然可以像往常一样使用gravity,因为这只是一个视图如何排列其自身内容的方式。

请看下面的图片比较。绿色和蓝色的视图是RelativeLayout中的TextViews。

enter image description here

gravity可以工作,但layout_gravity不行。欲了解更多细节,请参见我的更详细的回答

另请参阅


0

相对布局不使用layout_gravity属性,但您可以按以下方式使用gravity属性值:center、left、left|center、right|center、right、top、bottom。

<!-- below widget displaying text in left center -->
<TextView
           android:id="@+id/song_title"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:text="sample name text"
           android:gravity="left|center"
           android:textSize="15sp" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接