目前,我有LinearLayout
NumberPicker
& TextView
(使用文本“长字符串字符串”)
这不是我希望实现的目标。我希望实现的是
NumberPicker
将位于水平中心TextView
只会恰好位于NumberPicker
的右侧以下布局无效。因为它将NumberPicker
+ TextView
视为单个元素,并将它们两者放在一起。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/message_text_view"
android:text="@string/might_drain_battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<NumberPicker
android:id="@+id/number_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="long string string"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
我稍微更改了代码。我从内部gravity
移除LinearLayout
,并将layout_gravity
放入NumberPicker
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<NumberPicker
android:layout_gravity="center"
android:id="@+id/number_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="long string string"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
但是,这仍然无效(我想知道为什么NumberPicker
不再处于中心位置)
有任何建议我如何实现我想要的布局?
答案 0 :(得分:3)
我不会使用LinearLayout。
RelativeLayout允许其子项的属性android:layout_centerHorizontal="true"
(因此放置了NumberPicker)或甚至android:layout_centerInParent="true"
(如果对齐方式也必须是垂直的)。
它还允许想要放在另一个控件右侧的子项的属性android:layout_toRightOf="@id/nameOfAnotherControl"
(因此也放置了TextView)。
这就是全部
这将是您(略微)修改的布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<NumberPicker
android:layout_gravity="center"
android:id="@+id/number_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
/>
<TextView
android:text="long string string"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/number_picker"
android:layout_centerVertical="true"
/>
</RelativeLayout>
注意:我将“Linear”替换为“Relative”,并为两个控件添加了一个属性 现在NumberPicker是相对于父级的,TextView是相对于NumberPicker和父级的 我还在TextView中添加了一个额外的属性,使其垂直居中。