在我的例子中,我有两个文本视图,我希望它们在我的活动中居中。
问题是当我使用:
android:gravity="center_vertical|center_horizontal"
android:layout_centerInParent="true"
这两个文本视图位于彼此之上,我使用LinearLayout
作为父视图。
发布于 2011-04-27 20:54:15
您应该删除垂直部分和基于父项的部分,只保留
android:gravity="center_horizontal"
对于这两个TextViews
。
如果第一个TextView垂直居中就足够了,那么可以将它设置为|center_vertical
,并使用android:layout_below
将第二个绑定到这个。
如果您需要这些文本视图恰好位于活动的垂直中心,那么您应该使用android:height="wrap_content"
和android:layout_centerInParent="true"
(在RelativeLayout
中)或android:gravity="center_vertical|center_horizontal"
将它们封装到其他(例如,线性)布局中。
发布于 2011-04-27 20:53:55
android:layout_centerInParent="true"
仅对RelativeLayout
有效。
发布于 2011-04-27 21:06:14
尝试将LinearLayout的Orientation属性设置为"Horizontal":
<LinearLayout blah blah android:orientation="Horizontal"></LinearLayout>
备注:它告诉LinearLayout您希望如何堆叠元素,如果您没有定义它,那么它将无法正确地堆叠它们,请参阅下面的图表以获得解释。
当你设置这个属性的时候,它的元素将会紧挨着其他元素。
水平
X
垂直
X
X
另一件要记住的事情是,在线性布局中居中元素所需要做的就是:
<LinearLayout blah blah android:gravity="center"></LinearLayout>
如果这不起作用,试试这个:
<LinearLayout blah blah android:layout_gravity="center"></LinearLayout>
知道其中的区别绝对是个好主意,但我不会帮你去查。
https://stackoverflow.com/questions/5810361
复制