中心重力移动单选按钮描述,而不是按钮本身

时间:2012-10-12 00:52:07

标签: android android-layout

在要遵循的XML中,每个RadioButton都设置为android:gravity="center"

显示所有三个按钮,但按钮说明居中。按钮本身不是。如何使按钮居中以及描述?

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

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

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".3"
            android:gravity="center"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".3"
            android:gravity="center"
            android:checked="true"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".3"
            android:gravity="center"
            android:text="RadioButton" />
    </RadioGroup>
</LinearLayout>

在此图片中,您可以忽略顶部栏。这已经被编码了。我所看到的是RadioButton,它位于“RadioButton”文本的右侧(按钮本身与布局边界相对)。期望的最终结果是,因为我无法发布图像:Here it is.

2 个答案:

答案 0 :(得分:7)

我已尝试编辑您的布局以执行屏幕截图中的操作。我不认为这是一种有效的方法,但这是对我有用的唯一方法。

我将每个radiobutton插入父衬垫布局内,然后使用重心。

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight=".3"
        android:gravity="center" >

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight=".3"
        android:gravity="center" >

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight=".3"
        android:gravity="center" >

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />
    </LinearLayout>
</RadioGroup>

我真的希望有一个更好的解决方案。但在这里,希望它有所帮助。 :)

答案 1 :(得分:0)

只需在两者之间添加widget.Space,这样整个widget.RadioButton就会转移到右边......

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

  <RadioGroup
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Space
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

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

    <Space
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

    <RadioButton
        android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
</RadioGroup>