如何将单选buttonalignment相关文本的右侧?

我有一个类似button的无线电组内的下面的单选button。 默认情况下,button位于相关文本的左侧。 如何让button本身位于相关文本的右侧?

<RadioGroup android:id="@+id/points_radio_group" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <RadioButton android:id="@+id/do_tastk_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:onClick="doTask1" android:paddingLeft="40dip" android:text="@string/task_name_1" android:textColor="#000000" /> <RadioButton android:id="@+id/do_tastk_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:onClick="doTask2" android:paddingLeft="40dip" android:text="@string/task_name_2" android:textColor="#000000" /> </RadioGroup> 

Solutions Collecting From Web of "如何将单选buttonalignment相关文本的右侧?"

使用

  android:button="@null" android:drawableRight="@android:drawable/btn_radio" 

所以你的代码会像

 < RadioGroup android:id="@+id/points_radio_group" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > < RadioButton android:id="@+id/do_tastk_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:onClick="doTask1" android:paddingLeft="40dip" android:text="@string/task_name_1" android:textColor="#000000" /> < RadioButton android:id="@+id/do_tastk_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:onClick="doTask2" android:paddingLeft="40dip" android:text="@string/task_name_2" android:textColor="#000000" /> </RadioGroup> 

通过使用

 android:button="@null" android:drawableRight="@android:drawable/btn_radio" 

你改变单选button格式。 最好的做法是正确alignment,

 android:layoutDirection="rtl" 

在每个radioButton上,文本将在左侧。

如果您计划dynamic添加元素,则可以尝试使用文本视图和右侧没有文本的单选button创build布局。 这些线上的东西:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RadioButton android:id="@+id/radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true"/> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/radiobutton" android:layout_alignBottom="@+id/radiobutton" android:layout_alignParentLeft="true"> 

简单的方法将此添加到您的单选button在XML中

 android:layoutDirection="rtl" 

你可以在XML中做

 <android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right|center" //or "center_vertical" for center text android:layoutDirection="rtl" android:text="hello" /> 

以下线就够了

 android:layoutDirection="rtl" 

一个更简单的解决scheme,正如我在这里发布的是使用内置的Android布局 – android.R.layout.simple_list_item_single_choice

 <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2008 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeightSmall" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:gravity="center_vertical" android:checkMark="?android:attr/listChoiceIndicatorSingle" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" /> 

如果要修改它,可以将上述内容复制粘贴到新的XML文件中,然后使用<include>标签将其包含在其他布局中(在Apache 2.0许可证下 )。 您也可以将其用作列表项目,并保持不变。