android如何对齐无线电组内的无线电按钮?

时间:2016-09-08 08:43:00

标签: android xml radio-button radio-group

我的活动中有一个类似于桌子的东西(我使用垂直+水平线性布局来制作此表格),在此表格中我有按钮,编辑文本和单选按钮。我需要将radiogroup内的单选按钮对应所有表格。但目前无线电按钮看起来像是向左移动了。

我玩了每个单选按钮的重力,用无线电组的重力来播放它并没有帮助。

这是最后两个水平线性布局的代码。我需要将单选按钮对齐,使其像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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

感谢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)将您的radiobutton参数更改为

android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@android:color/transparent"
android:drawableTop="@drawable/custom_radio_button"/>