我在RadioGroup中有4个RadioButtons,如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button1"
android:text="Button 1"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button2"
android:text="Button 2"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button3"
android:text="Button 3"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button4"
android:text="Button 4"/>
</RadioGroup>
</RelativeLayout>
我希望RadioButton 2在RadioButton 1的右边,我希望RadioButton 3低于RadioButton 1,我希望RadioButton 4在RadioButton 3的右边。
正常属性,如
android:layout_below=""
和
android:layout_toRightOf""
不适用于RadioButtons。如何在这里以上述XML方式放置RadioButtons?
答案 0 :(得分:1)
解决方案1:使用LinearLayout
:
LinearLayout
添加为RadioGroup
的直接子项,并使用vertical
为其android:orientation="vertical"
提供方向。 LinearLayout
和LinearLayout
在android:orientation="horizontal"
上方添加另外两个android:weightSum="2"
。button1
和button2
放入第一个水平LinearLayout
,并将button3
和button4
放入第二个水平LinearLayout
。buttons
提供所有4 1
权重android:layout_weight="1"
。试试这个:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<RadioButton
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 1"/>
<RadioButton
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<RadioButton
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 3"/>
<RadioButton
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 4"/>
</LinearLayout>
</LinearLayout>
</RadioGroup>
</RelativeLayout>
<强>输出:强>
解决方案2:使用RelativeLayout
:
RelativeLayout
添加为RadioGroup
的直接子项,并将所有RadioButton
放入此RelativeLayout
。 android:layout_toRightOf="@id/button1"
添加到button2
,以显示right
的{{1}}。button1
“添加到android:layout_below="@id/button1
,以显示button3
below
。button1
和android:layout_toRightOf="@id/button3"
添加到android:layout_alignBottom="@id/button3"
以显示button4
的权利。尝试:
button3
<强>输出:强>
仅供参考,您可以根据需要在<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 1"/>
<RadioButton
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button1"
android:text="Button 2"/>
<RadioButton
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button1"
android:text="Button 3"/>
<RadioButton
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button3"
android:layout_alignBottom="@id/button3"
android:text="Button 4"/>
</RelativeLayout>
</RadioGroup>
</RelativeLayout>
之间使用padding
或margin
。
希望这会有所帮助〜
答案 1 :(得分:0)
我建议你不要在RadioGroup中使用嵌套的嵌套布局(线性/相对)来增加视图层次结构。此外,您将无法使用嵌套布局获得单一选择功能。 RadioGroup实际上扩展了LinearLayout。因此它只能垂直或水平排列RadioButtons。在这里,我分享了链接 RelativeRadioGroup 我的库实际上是一个RelativeRadioGroup,所以你可以按照自己的意愿安排RadioButtons。
答案 2 :(得分:0)
请尝试以下代码,
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:oriendtation="horizontal"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button1"
android:text="Button 1"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button2"
android:text="Button 2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:oriendtation="horizontal"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button3"
android:text="Button 3"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/button4"
android:text="Button 4"/>
</LinearLayout>
我希望这对你有帮助。
答案 3 :(得分:0)
你可以试试这个
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="NewApi">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="Button 1"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text="Button 2"
android:layout_toRightOf="@+id/button1"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button3"
android:text="Button 3"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button4"
android:text="Button 4"
android:layout_toRightOf="@+id/button3"/>
</RelativeLayout>
</RadioGroup>