在spinner item的custom_style.xml中是否可以指定多个gravity值?

70

我有一个名为textview.xml的文件,它是下拉框的项样式。

<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="left|center_horizontal"
  android:textSize="18sp">
</TextView>

我知道可以同时指定 (Gravity.LEFT | Gravity.CENTER_HORIZONTAL),但在xml中不起作用 - 文本只会向左移动。


1
你想要实现什么?你可以指定水平重力和垂直重力,但两个水平设置没有意义。 - adamp
1
我的错误,抱歉。实际上是“left|center_vertical”。现在它可以工作了,谢谢你指出。 - 87element
2个回答

186

87element,

我相信你想要使用layout_gravity,而你只是在使用gravity

是的,你可以像文档中提到的那样用 '|' 来组合两个layout_gravity属性:http://developer.android.com/reference/android/R.attr.html#layout_gravity

但即使使用layout_gravity代替只有一个gravity(如adamp在他的评论中所述),你试图组合的设置也没有意义。你基本上告诉它在同一行上左对齐和居中。在这种情况下,leftcenter_horizontal都指水平位置。

您要将TextView与父级对齐到哪里?

您的父布局类似于网格,您可以选择一个位置:

|[ 1 ] [ 2 ] [ 3 ]|

|[ 4 ] [ 5 ] [ 6 ]|

|[ 7 ] [ 8 ] [ 9 ]|

  1. 左上: android:layout_gravity="top|left"

  2. 上居中: android:layout_gravity="top|center_horizontal"

  3. 右上: android:layout_gravity="top|right"

  4. 左居中: android:layout_gravity="center_vertical|left"

  5. 正中央: android:layout_gravity="center"

  6. 右居中: android:layout_gravity="center_vertical|right"

  7. 底部左侧:android:layout_gravity="bottom|left"

  8. 底部中心:android:layout_gravity="bottom|center_horizontal"

  9. 底部右侧:android:layout_gravity="bottom|right"


2
感谢您的回答,"map"对我帮助很大!不过,我应该提到,我本来想使用android:gravity属性。我的TextView作为ArrayAdapter的项布局参数用于我的下拉列表;android:layout_gravity没有做出任何改变。除了这个愚蠢的定位错误,我已经接近解决方案了,你和adamp指出了它。再次感谢! - 87element
android:layout_gravity="center_vertical|right|end" 的含义是什么?这些值之间是否存在矛盾? - Elad Benda

25

如果有人和我一样傻,请务必记得去掉空格。 android:gravity="center_horizontal|bottom" 但是android:gravity="center_horizontal | bottom"是无效的。


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