android 如何对齐单选组内的单选按钮?
android how to align radio-buttons inside radio group?
我的 activity 中有类似 table 的东西(我使用垂直 + 水平线性布局来制作这个 table),在这个 table 中我有按钮、编辑文本和单选按钮。我需要将 radiogroup 内的单选按钮与所有 table 相对应。但目前单选按钮看起来像向左移动。
我玩了每个单选按钮的引力,单选组的引力,但没有帮助。
这是最后两个水平线性布局的代码。我需要像 editText 一样将单选按钮居中对齐。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="6">
<ImageView
android:id="@+id/imageQuest"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/quest1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="6">
<ImageView
android:id="@+id/imageLongestWay"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioGroup
android:id="@+id/RadioGroup"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:orientation="horizontal"
android:weightSum="5">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</RadioGroup>
</LinearLayout>
您需要在 drawable 中创建自定义 RadioButton
:
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="50dip"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:button="@android:color/transparent"
android:drawableLeft="@drawable/custom_radio_button"/>
custom_radio_button.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checked_radio_button" android:state_checked="true" android:state_pressed="false" />
<item android:drawable="@drawable/ic_uncheked_radio_button" android:state_checked="false" android:state_pressed="false" />
</selector>
感谢S.B.K的建议,我们需要使用自定义单选按钮图像。并使用 "android:drawableTop="
所以
1)从网上下载2张图片。一个用于已检查的无线电,一个用于未检查的无线电。
2)将它们放入项目中的可绘制文件夹
3) 在 drawable 文件夹
中创建 custom_radio_button.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checked_radio_button" android:state_checked="true" android:state_pressed="false" />
<item android:drawable="@drawable/ic_uncheked_radio_button" android:state_checked="false" android:state_pressed="false" />
4) 将单选按钮参数更改为
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@android:color/transparent"
android:drawableTop="@drawable/custom_radio_button"/>
我的 activity 中有类似 table 的东西(我使用垂直 + 水平线性布局来制作这个 table),在这个 table 中我有按钮、编辑文本和单选按钮。我需要将 radiogroup 内的单选按钮与所有 table 相对应。但目前单选按钮看起来像向左移动。
我玩了每个单选按钮的引力,单选组的引力,但没有帮助。
这是最后两个水平线性布局的代码。我需要像 editText 一样将单选按钮居中对齐。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="6">
<ImageView
android:id="@+id/imageQuest"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/quest1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
<EditText
android:id="@+id/quest5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:digits="0123456789-"
android:ems="10"
android:inputType="number"
android:maxLength="3"
android:hint="0"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="6">
<ImageView
android:id="@+id/imageLongestWay"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioGroup
android:id="@+id/RadioGroup"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:orientation="horizontal"
android:weightSum="5">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</RadioGroup>
</LinearLayout>
您需要在 drawable 中创建自定义 RadioButton
:
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="50dip"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:button="@android:color/transparent"
android:drawableLeft="@drawable/custom_radio_button"/>
custom_radio_button.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checked_radio_button" android:state_checked="true" android:state_pressed="false" />
<item android:drawable="@drawable/ic_uncheked_radio_button" android:state_checked="false" android:state_pressed="false" />
</selector>
感谢S.B.K的建议,我们需要使用自定义单选按钮图像。并使用 "android:drawableTop="
所以 1)从网上下载2张图片。一个用于已检查的无线电,一个用于未检查的无线电。 2)将它们放入项目中的可绘制文件夹 3) 在 drawable 文件夹
中创建 custom_radio_button.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checked_radio_button" android:state_checked="true" android:state_pressed="false" />
<item android:drawable="@drawable/ic_uncheked_radio_button" android:state_checked="false" android:state_pressed="false" />
4) 将单选按钮参数更改为
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@android:color/transparent"
android:drawableTop="@drawable/custom_radio_button"/>