编辑:作为测试,我一直在使用单选按钮和背景的固定大小:
android:layout_height =“ 40dp” android:layout_width =“ 40dp”
我正在使用一个GridLayout,其中包含的radioGroup跨越了网格的所有列。 我想使所有radioButtons大小相等,并占据所有可用空间。
您可以看到无线电组(在Visual Studio for Mac设计器中选择)正在占用下图中的所有可用空间,但没有占用按钮:
每个单选按钮都是自定义按钮,它显示1到10之间的数字,并在选中时用颜色圈出。
这是axml代码:
<?xml version="1.0" encoding="UTF-8" ?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnCount="10" android:orientation="horizontal">
<RadioGroup android:id="@+id/qol_criteria1_radio_group" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal">
<RadioButton android:id="@+id/qol_criteria1_score1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="1" android:tag="1" />
<RadioButton android:id="@+id/qol_criteria1_score2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="2" android:tag="2" />
<RadioButton android:id="@+id/qol_criteria1_score3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="3" android:tag="3" />
<RadioButton android:id="@+id/qol_criteria1_score4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="4" android:tag="4" />
<RadioButton android:id="@+id/qol_criteria1_score5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="5" android:tag="5" />
<RadioButton android:id="@+id/qol_criteria1_score6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="6" android:tag="6" />
<RadioButton android:id="@+id/qol_criteria1_score7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="7" android:tag="7" />
<RadioButton android:id="@+id/qol_criteria1_score8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="8" android:tag="8" />
<RadioButton android:id="@+id/qol_criteria1_score9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="9" android:tag="9" />
<RadioButton android:id="@+id/qol_criteria1_score10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="10" android:tag="10" />
</RadioGroup>
</GridLayout>
可绘制对象:
qol_score_background
<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/b"
android:state_checked="true"
android:state_pressed="true" />
<item
android:drawable="@drawable/a"
android:state_pressed="true" />
<item
android:drawable="@drawable/a"
android:state_checked="true" />
<item
android:drawable="@drawable/b" />
</selector>
a.xml
<?xml version="1.0" encoding="UTF-8" ?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#fff" />
<stroke
android:width="2dp"
android:color="#53aade" />
</shape>
b.xml
<?xml version="1.0" encoding="UTF-8" ?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#fff" />
<stroke
android:width="2dp"
android:color="#555555" />
</shape>
我不得不说我在调整元素方面遇到了困难。任何帮助表示赞赏。
答案 0 :(得分:0)
解决此问题的最佳方法是使用AppCompat RadioButton
代替:
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
.
.
. />
添加此内容后,万一仍然恢复原状就不会发生此问题。
答案 1 :(得分:0)
Radio-Group
允许带有权重的子项,为每个子项Radio-Button
设置以下属性将相等地设置每个子项的宽度。
<RadioButton
android:id="@+id/my_rad_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/qol_score_background"
android:button="@android:color/transparent"
android:checked="false"
android:text="1"
android:tag="1" />