【问题标题】:Aligning Text with a RadioGroup/RadioButton将文本与 RadioGroup/RadioButton 对齐
【发布时间】:2012-05-02 07:49:17
【问题描述】:

我想在 RadioGroup 旁边放置文本,作为它的一种标签。所以 RadioGroup 中有两个带有文本的按钮,目前,我只能让顶部对齐,但这看起来很尴尬。我可以尝试将 TextView 排成一行,但这并不理想或容易。 RadioGroup 和 TextView 位于 RelativeLayout 中,我已经尝试 android:layout_alignBaseline 用于带有 RadioGroup 和其中一个 RadioButtons 的 TextView,但 RadioGroup 似乎没有基线,我似乎无法获得来自 TextView 的 RadioButton 的基线。

【问题讨论】:

  • 我还不能这么早回答我的问题,但是......如果其他人遇到这个问题,您似乎可以将 TextView 移入 RadioGroup 来解决问题。也许这对其他人来说是显而易见的,但对我来说这在语义上似乎并不清晰。所以我想我会分享。

标签: android user-interface


【解决方案1】:

这几天我遇到了同样的问题,我终于解决了。 我尝试了所有想到的组合,最后我发现诀窍在于将 android:layout_weight 与 TextViews 上的值相同。这会将它们对齐在 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>

【讨论】:

    【解决方案2】:
    <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" 将对齐项目的中心。因此,即使按钮和文本的大小不同,它们在 imo 中看起来也不错。

    【讨论】:

      【解决方案3】:

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

      <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-21
        • 2016-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多