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>

截图如下: Radio-buttons are not aligned inside radio-group

您需要在 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"/>