Android与重力的相对布局问题
Posted
技术标签:
【中文标题】Android与重力的相对布局问题【英文标题】:Android relative layout problem with gravity 【发布时间】:2011-02-17 18:21:44 【问题描述】:如何将 id="naslov" 的 textview 放在中心?我也尝试过 layout_gravity="center" 但这也不起作用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<TextView
android:id="@+id/naslov"
android:layout_
android:layout_
android:textSize="20dip"
android:text="Povzetek"
android:gravity="center"/>
<TextView
android:id="@+id/aha"
android:layout_
android:layout_
android:textSize="10dip"
android:text="Vseh oddaj:"
android:layout_below="@id/naslov"/>
</RelativeLayout>
【问题讨论】:
属性重力在RelativeLayout中没有影响。 Android and Layouts 的可能重复项 【参考方案1】: android:layout_centerHorizontal="true"
【讨论】:
【参考方案2】: android:layout_centerHorizontal="true"
还有
android:layout_centerInParent="true"
RelativeLayout 属性的完整列表是here
您也可以告诉您的 TextView 填充父项,然后在其上设置重力=中心。所以它将在 textView 中居中实际文本。
【讨论】:
【参考方案3】:补充答案
作为对这个问题的更一般的回答,layout_gravity
不适用于RelativeLayout
的子视图。它适用于LinearLayout
或FrameLayout
。但是,RelativeLayout
的子视图仍然可以照常使用gravity
,因为这正是视图排列自己内容的方式。
请参阅下图中的比较。绿色和蓝色视图是 RelativeLayout
内的 TextView。
gravity
有效,但 layout_gravity
无效。详情请见my fuller answer。
另请参阅
Gravity and layout_gravity on Android Positioning views within a RelativeLayout【讨论】:
【参考方案4】:相对布局不使用 layout_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_
android:layout_
android:text="sample name text"
android:gravity="left|center"
android:textSize="15sp" />
【讨论】:
以上是关于Android与重力的相对布局问题的主要内容,如果未能解决你的问题,请参考以下文章
Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件