更改文本在单选按钮上显示的一侧

21 user-interface android

我想知道是否有办法切换文本出现在android中的单选按钮上的那一面?

Dig*_*pia 16

我想做同样的事情,而不必扩展另一个类(或两个,因为你必须至少扩展CompoundButton RadioButton),从一开始应该是实现的一部分.因为我使用的是一个RadioGroup,如果你把布局容器中的RadioButton和TextView放在一起就无法工作.诚然,我的解决方案不仅仅是一种hackish,而且 - 它有效.

1)将填充设置为40 2)将布局边距设置为-36dp

此时,原始单选按钮将位于视图外部,文本视图将位于最左侧,边距为4dp.

3)将Drawable右键设置为@android:drawable/btn_radio

您现在将拥有一个本地RadioButton,其左侧是文本,右侧是一个按钮,可以与RadioGroup一起使用.

@CommonsWare

值得一提的是,提出人机界面指南以回应这一特定问题是非常具有讽刺意味的.特别是考虑到调整RadioButton布局以将按钮放在最右边,可以实现与Spinner菜单布局的一致性.我完全赞同你对此事的看法 - 但NickTFried很可能试图弥补Android在这方面的"悬挂".

  • 您可以使用android:button ="@ null"删除左侧单选按钮(而不是步骤1) (5认同)

Com*_*are 9

正如Ravi Vyas指出的那样,你可以用a TextView和a来自己做RadioButton.RadioButton从我对源代码的阅读中重新定位按钮相对于文本没有什么固有的.

此外,请记住,仅仅因为这是可能的并不意味着这是一个好主意.例如,在iPhone上,如果您过多地使用此应用程序,可能不允许发送应用程序,因为它们具有应用程序必须遵守的人机界面指南.Android为您提供了更多的绳索 - 不要让用户使用它.


jho*_*nna 8

CheckedTextView精品,如果你与一个单一的"单选按钮"的工作.

但我需要在组中的单选按钮之间保留切换功能,这样对我来说效果更好:

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

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:gravity="left|center_vertical"
            android:layout_marginLeft="-32dp"
            android:text="Radio Button 1" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:gravity="left|center_vertical"
            android:layout_marginLeft="-32dp"
            android:text="Radio Button2" />

    </RadioGroup>
Run Code Online (Sandbox Code Playgroud)

android:layout_marginLeft根据需要进行调整.


Sol*_*ake 6

对于RTL语言,即Arabic使用此:

        <RadioGroup
            android:id="@+id/rgNewsFilter"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <RadioButton
                android:id="@+id/rbAllNews"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="-32dp"
                android:button="@null"
                android:drawableRight="@android:drawable/btn_radio"
                android:gravity="right|center_vertical"
                android:text="???????????"
                android:textColor="#ffffff" />

            <RadioButton
                android:id="@+id/rbMyTeam"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="-32dp"
                android:button="@null"
                android:drawableRight="@android:drawable/btn_radio"
                android:gravity="right|center_vertical"
                android:text="??????????????"
                android:textColor="#ffffff" />
        </RadioGroup>
Run Code Online (Sandbox Code Playgroud)