目前,我有一个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
<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
不再在中间)有什么建议可以达到我想要的布局吗?
最佳答案
我不会用线性布局。
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>
注意:我用“relative”替换了“linear”,并为两个控件添加了一个属性。
现在numberpicker相对于父对象,textview相对于numberpicker和父对象。
我还向textview添加了一个额外的属性,使其垂直居中。
关于android - 如何将2个子小部件中的一个子小部件居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22357796/