将文本与RadioGroup / RadioButton对齐

时间:2012-04-20 17:52:19

标签: android user-interface

我想在RadioGroup旁边有一个文本,它是一种标签。因此,RadioGroup中有两个按钮,带有文本,目前,我只能让顶部对齐,但这看起来很尴尬。我可以尝试将TextView保持在线,但这并不理想或不容易。 RadioGroup和TextView位于RelativeLayout内部,我已经尝试android:layout_alignBaseline用于带有RadioGroup的TextView和一个RadioButtons,但似乎RadioGroup没有基线,我似乎无法从TextView获取RadioButton的基线。

3 个答案:

答案 0 :(得分:2)

这些天我遇到了同样的问题,我终于解决了。 我尝试了我想到的每一个组合,最后我弄清楚这个技巧是在TextViews上使用相同的值放置android:layout_weight。这使他们只是放在RadioButtons的中心。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dip"
        android:layout_marginLeft="15dip"
        android:orientation="horizontal" >

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:button="@drawable/radio_button"
                    android:paddingRight="15dip"
                    />
                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:button="@drawable/radio_button"
                    android:paddingRight="15dip"
                    />
        </RadioGroup>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
            <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="@string/cop_radiobutton_label"
                    android:layout_weight="1"
                    android:gravity="center_vertical"/>

            <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="@string/thief_radiobutton_label"
                    android:layout_weight="1"
                    android:gravity="center_vertical"/>
        </LinearLayout>
    </LinearLayout>

答案 1 :(得分:1)

<LinearLayout
           android:id="@+id/linearLayout5" 
           android:layout_width= "fill_parent"
           android:layout_height= "50dip"
           android:orientation="horizontal"
           android:layout_gravity="center"
           android:background="@drawable/squareback">

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

               <RadioButton
                   android:id="@+id/meleeRadio"
                   android:layout_width="150dip"
                   android:layout_height="40dip"
                   android:checked="false"
                   android:text="Melee Attack" android:textColor="@color/black" android:gravity="center" android:layout_gravity="center" android:layout_margin="5dip"/>

           <RadioButton
               android:id="@+id/rangeRadio"
               android:layout_width="150dip"
               android:layout_height="40dip"
               android:text="Range Attack" android:textColor="@color/black" android:gravity="center" android:layout_gravity="center" android:layout_margin="5dip" android:checked="false"/>

           </RadioGroup>



        </LinearLayout> 

为了对齐它们,我将它们放在我为其设置大小的LinearLayout中。然后我android:layout_gravity =“center”将对齐项目的中心。因此,即使按钮和文本的大小不同,它们看起来也很好。

答案 2 :(得分:0)

我遇到了类似的问题:我需要将一些文本与RadioGroup的中心对齐,这将作为3个RadioButtons的标签。 我通过将textView上的android:layout_gravity属性设置为居中来实现它。 以下是代码段:

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Experience Level:"
        android:layout_gravity="center"/>

   <RadioGroup
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">
       <RadioButton
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Novice"/>
       <RadioButton
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Intermidiate"/>
       <RadioButton
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Advanced"/>
   </RadioGroup>
</LinearLayout>