2

我在一个 Radio Group 中有两个 RadioButton,看起来像这样。 在此处输入图像描述

             <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 向左对齐,我想让这些按钮居中。当我尝试将每个按钮的重力设置为中心时,会发生以下情况。

在此处输入图像描述

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

android:gravity="center"

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

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

3 回答 3

3

这看起来怎么样?

居中的单选按钮

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


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

白色居中按钮

但在我看来,顶部的图像比底部的图像更集中和平衡。


这是顶部布局的代码。

<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属性。希望有帮助!

于 2012-09-05T19:14:50.670 回答
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>

它可以按需要工作

于 2012-09-04T22:01:40.230 回答
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 中,但看起来您希望它看起来像这样。

于 2012-09-04T22:05:26.510 回答