以RadioButtons为中心

时间:2012-09-04 21:41:11

标签: android xml radio-button

我在收音机组中有两个看起来像这样的RadioButtons。 enter image description here

             <RadioGroup
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" >

                    <RadioButton
                        android:id="@+id/rb_PubAsMe"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:checked="true"
                        android:text="Self"
                        android:textColor="#000000" />

                    <RadioButton
                        android:id="@+id/rb_PubAsTeam"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Team"
                        android:textColor="#000000" />
                </RadioGroup>

默认情况下,android向左调整,我想让这些按钮居中。当我尝试将每个按钮的重力设置为中心时,会发生以下情况。

enter image description here

相同代码,但将此行添加到每个RadioButton

android:gravity="center"

有没有人遇到过这个问题?如何让按钮移动到带有文本的中心?

   |---------(Button)Text---------|---------(Button)Text---------|

3 个答案:

答案 0 :(得分:3)

这看起来如何?

Centered RadioButtons

我使用了一些看不见的RadioButton“垫片”。 (以下代码)


我还尝试了只有一个“间隔”的各种组合......(我切换到“光”主题,快速模仿你的配色方案。)

White Centered Buttons

但是顶部图像看起来比中间图像更加集中和平衡。


这是顶部布局的代码。

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="horizontal" >

    <RadioButton 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:visibility="invisible" />

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

    <RadioButton 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:visibility="invisible" />

    <RadioButton
        android:id="@+id/rb_PubAsTeam"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Team" />

    <RadioButton 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:visibility="invisible" />

</RadioGroup>

如果您更喜欢底部图片,只需删除第一个和最后一个“间隔符”并删除layout_weight属性。希望有所帮助!

答案 1 :(得分:1)

我修改了你的代码。

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/rb_PubAsMe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Self"
        android:textColor="#000000" />

    <RadioButton
        android:id="@+id/rb_PubAsTeam"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Team"
        android:textColor="#000000" />

</RadioGroup>

按预期工作

答案 2 :(得分:0)

我能想到的唯一解决方案如下:

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:weightSum="2"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1" >
        <RadioButton 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="true"
            android:layout_centerVertical="true"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
    </RelativeLayout>

    <!-- Repeat the above RelativeLayout --> 
</LinearLayout>

您无法以这种方式将按钮放在RadioGroup中,但看起来您希望它看起来像。