如何让Android单选按钮使用更少的填充?

时间:2014-05-16 19:18:27

标签: android xml android-layout android-radiogroup android-radiobutton

我希望我的收音机按钮能让彼此变得更加舒适。

我希望将它们放在一个无线电组中,以为它会自动提供“如果这个被检查,其他的则自动取消选中”逻辑。

但是有一个无线电组:

<TableRow
        android:id="@+id/tableRow6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dip">

        <RadioGroup
            android:id="@+id/radioEditList"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

        <RadioButton
            android:id="@+id/radioAlways"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="false"
            android:text="@string/editlist_radgrp_always" />

        <RadioButton
            android:id="@+id/radioNever"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/editlist_radgrp_never" />

        <RadioButton
            android:id="@+id/radioCostChange"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/editlist_radgrp_costchange" />
    </RadioGroup>
</TableRow>

......看起来像这样:

enter image description here

没有RadioGroup:

<TableRow
    android:id="@+id/tableRow6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dip">

    <RadioButton
        android:id="@+id/radioAlways"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/editlist_radgrp_always" />

    <RadioButton
        android:id="@+id/radioNever"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/editlist_radgrp_never" />

    <RadioButton
        android:id="@+id/radioCostChange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/editlist_radgrp_costchange" />
</TableRow>

......看起来更好:

enter image description here

......但仍然可怜,或者至少可悲,不够。

如何让你的单选按钮在一起碾压?

2 个答案:

答案 0 :(得分:1)

您可以尝试将其全部放在

LinearLayout 

并为每个按钮指定权重。 像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TableRow
    android:id="@+id/tableRow6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:padding="5dip" >

    <RadioButton
        android:id="@+id/radioAlways"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="always" />

    <RadioButton
        android:id="@+id/radioNever"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:checked="true"
        android:text="never" />

    <RadioButton
        android:id="@+id/radioCostChange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="costchange" />
</TableRow>

答案 1 :(得分:0)

我能够以这种方式工作:

    <RadioGroup
        android:id="@+id/radioEditList"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    <RadioButton
        android:id="@+id/radioAlways"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/editlist_radgrp_always" />

    <RadioButton
        android:id="@+id/radioNever"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/editlist_radgrp_never" />

    <RadioButton
        android:id="@+id/radioCostChange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/editlist_radgrp_costchange" />

    </RadioGroup>

与我的第一次尝试的不同之处在于,现在在radiogroup声明后面有一个直角括号,并且一个orientation属性设置为水平。此外,不需要包含TableRow(事实上,它似乎搞砸了)。