我是Android SDK的新手,我正在使用TextView和我的活动UI上的其他组件。当我将宽度设置为wrap_content
并使用layout_gravity
时,我可以将TextView置于父容器中心。但是,我现在需要为TextView提供一个沿父级宽度完全拉伸的背景,因此我将宽度设置为match_parent
。完成此操作后,layout_gravity
和textAlignment="center"
都无法将文本置于视图中心。这是我正在使用的代码:
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="@string/trackName"
android:textColor="#ffffff"
android:layout_gravity="center"
android:textSize="28sp"
android:paddingTop="7dp"
android:paddingLeft="20dp"
android:background="#99000000" />
这就是活动用户界面现在的样子:
如何修复此问题并将文本与TextView控件的中心对齐?请帮忙!
答案 0 :(得分:7)
您应该使用android:gravity
。正如文档所说:
gravity指定对象如何在其自己的边界内在X轴和Y轴上定位其内容。
layout_gravity儿童向其父母提供的标准重力常数。定义子视图在其封闭布局中在X轴和Y轴上的定位方式。
答案 1 :(得分:3)
使用gravity
代替layout_gravity
android:gravity
设置其使用的视图内容的重力,android:layout_gravity
设置视图或布局在其父级中的重力。
尝试这样可以解决您的问题。
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="@string/trackName"
android:textColor="#ffffff"
android:gravity="center"
android:textSize="28sp"
android:paddingTop="7dp"
android:paddingLeft="20dp"
android:background="#99000000" />
答案 2 :(得分:1)
android:gravity="center_horizontal"
重力和layout_gravity之间的区别:
layout_gravity表示布局中广角的重力。你使用width作为match_parent。所以你的textview已经占据了所有的空间。
gravity是指该视图内容的重力。即textview中文本的重力。你必须将该文本放在中心,而不是文本视图。