在RadioGroup中使用RelativeLayout使Radio Buttons不是独占的

时间:2015-02-10 09:06:52

标签: android android-radiogroup android-radiobutton

我试图在水平和垂直中心制作一个带有两个单选按钮的RadioGroup。但是我也希望他们通过无线电保持对齐,因为他们有不同的文字长度。我使用了这段代码,但它们并不相互排斥:

      <RadioGroup
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center|center_vertical">

                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/rbtn_gps_to"
                    android:text="to"
                    android:checked="true"
                    />


                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/rbtn_gps_from"
                    android:text="from"
                    android:layout_below="@+id/rbtn_gps_to"
                    />


            </RelativeLayout>


        </RadioGroup>

它有效,两者都按照我的意愿对齐,但问题是,当我检查一个然后我检查另一个,第一个保持也检查,所以它们不是独占的。当我删除相对布局时,radiobuttons是独占的。有没有办法创建我想要的布局,并且无线电按钮保持独占?

3 个答案:

答案 0 :(得分:2)

以前的答案包含一些问题。要选择的点不在一列中,它们不对齐。这个解决方案看起来和你的一样。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    <RadioGroup
            android:layout_width=" wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="vertical">
        <RadioButton android:id="@+id/rbtn_gps_to"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="to"/>
        <RadioButton android:id="@+id/rbtn_gps_from"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="from"/>
    </RadioGroup>
</RelativeLayout>

答案 1 :(得分:0)

您可以使用以下内容:

<RadioGroup
    android:id="@+id/radio_group_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"

    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <RadioButton

        android:id="@+id/rbtn_gps_from"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="20dp"
        android:text="from" />

    <RadioButton
        android:id="@+id/rbtn_gps_to"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="20dp"
        android:text="to" />
</RadioGroup>

答案 2 :(得分:0)

是的,您可以通过将radioGroup的xml属性设置为vertical来进行所需的布局。

 <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:gravity="center">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbtn_gps_to"
                android:text="to"
                android:checked="true"
                />


            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbtn_gps_from"
                android:text="from"

                />

    </RadioGroup>