我现在遇到问题。
我有一种情况,我需要显示3个按钮,当时只能按一个按钮
我以前使用“ImageButton”,自己处理点击/未点击状态。
但是,我选择将其切换为RadioGroup,因为它应该处理这种行为
我想这样做:
我试过,重量属性,alignParentLeft,对,硬件大小,但找不到干净的解决方案。
你能帮帮我吗?
以下是按钮:
<RadioGroup
android:id="@+id/mobiprint_mod_radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio_tag"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/tag_on"
android:button="@android:color/transparent"
android:layout_margin="0dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<RadioButton
android:id="@+id/radio_pe"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/pe_off"
android:button="@android:color/transparent"
android:layout_margin="0dp"
android:layout_centerHorizontal="true"/>
<RadioButton
android:id="@+id/radio_a7"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/a7_off"
android:button="@android:color/transparent"
android:layout_margin="0dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RadioGroup>
答案 0 :(得分:0)
由于RadioGroup
继承自LinearLayout
,您可以在RadioButtons
上使用权重。
在Radiogroup
中,将方向设置为水平,就像使用LinearLayout
一样。
<RadioButton
android:id="@+id/radio_tag"
android:layout_height="68dip"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/tag_on"
android:button="@android:color/transparent"
android:layout_margin="0dp"
/>
<RadioButton
android:id="@+id/radio_pe"
android:layout_height="68dip"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/pe_off"
android:button="@android:color/transparent"
android:layout_margin="0dp"
/>
<RadioButton
android:id="@+id/radio_a7"
android:layout_height="68dip"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/a7_off"
android:button="@android:color/transparent"
android:layout_margin="0dp"
/>
我删除了属于RelativeLayout
的那些属性。
注意:权重均为 1 ,宽度均为 0dp 。
这是故意的。
答案 1 :(得分:0)
尝试下面的代码。
您需要将radiogroup的Orientation定义为水平并应用weightsum
以及根据您的方便应用layout_weight
。
<RadioGroup
android:id="@+id/mobiprint_mod_radio_group"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:weightSum="1">
<RadioButton
android:id="@+id/radio_tag"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:text="option A" />
<RadioButton
android:id="@+id/radio_pe"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:text="option B" />
<RadioButton
android:id="@+id/radio_a7"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:text="option C" />
</RadioGroup>
希望它适合你:)
答案 2 :(得分:0)
在两个单选按钮之间(即第一和第二之间以及第二和第三之间)添加视图(虚拟视图),并使用android:layout_weight =“ 1”
<RadioGroup
android:id="@+id/mobiprint_mod_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio_tag"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/tag_on"
android:button="@android:color/transparent" />
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radio_pe"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/pe_off"
android:button="@android:color/transparent" />
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radio_a7"
android:layout_width="96dip"
android:layout_height="68dip"
android:background="@drawable/a7_off"
android:button="@android:color/transparent" />
</RadioGroup>
也可以使用空格代替视图
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>