all*_*aws 77 android radio-button
是否可以在仍然使用Android的内置组件的同时在RadioButton和标签之间添加一点空间?默认情况下,文本看起来有点紧张.
<RadioButton android:id="@+id/rb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My Text"/>
Run Code Online (Sandbox Code Playgroud)
我尝试了几件事:
指定边距和填充似乎在整个元素周围添加空间(按钮和文本,一起).这是有道理的,但不能做我需要的.
通过XML创建自定义drawable,为已检查和未检查的状态指定图像,然后在每个图像的右侧添加一些额外的像素.这应该可行,但现在您已经超出默认UI.(不是世界末日,但不是理想的)
在每个标签的开头添加额外的空格.Android似乎修剪了一个领先的空格字符,如"我的字符串",但是指定unicode U + 00A0,就像"\ u00A0My String"一样.这有效,但似乎有点脏.
更好的解决方案?
Jim*_*aca 108
对于现在读这个的人.接受的答案将导致新的api上的一些布局问题导致填充太多.
在API <= 16时,您可以在单选按钮上设置填充,以设置相对于单选按钮的视图边界的填充.另外,补丁九背景也改变了相对于视图的视图边界.
在API 17上,左边的填充与可绘制的单选按钮相关.同样适用于九个补丁.为了更好地说明填充差异,请参阅随附的屏幕截图.
如果你仔细研究代码,你会在api 17中找到一个名为getHorizontalOffsetForDrawables的新方法.在计算单选按钮的左边距时(因此图中所示的附加空间),调用此方法.
TL; DR您应该为您支持的min sdk设置单选按钮样式,并为api 17+设置另一种样式
小智 62
不确定这是否能解决您的问题,但您是否尝试过Radio Button的"Padding left"属性,其值为50dip或更多
Gia*_* P. 56
我尝试了几种方法,并完成了这个在模拟器和设备上正常工作:
<RadioButton
android:background="@android:color/transparent"
android:button="@null"
android:drawableLeft="@drawable/your_own_selector"
android:drawablePadding="@dimen/your_spacing" />
Run Code Online (Sandbox Code Playgroud)
Hir*_*tel 31
通过paddingLeft在radiobutton的标签之间添加边距:
android:paddingLeft="10dip"
Run Code Online (Sandbox Code Playgroud)
只需设置自定义填充.
RadioButton的xml属性.
<RadioButton
android:id="@+id/radHighest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/YourImageResource"
android:drawablePadding="50dp"
android:paddingLeft="10dip"
android:text="@string/txt_my_text"
android:textSize="12sp" />
Run Code Online (Sandbox Code Playgroud)
完成
Sri*_*ddy 21
使用以下XML属性.它对我有用
对于API <= 16使用
android:paddingLeft="16dp"
Run Code Online (Sandbox Code Playgroud)
对于API> = 17使用
android:paddingStart="@16dp"
Run Code Online (Sandbox Code Playgroud)
例如:
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/popularityRadioButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="true"
android:paddingEnd="@dimen/radio_button_text"
android:paddingLeft="@dimen/radio_button_text"
android:paddingRight="@dimen/radio_button_text"
android:paddingStart="@dimen/radio_button_text"
android:text="Popularity"
android:textSize="@dimen/sort_dialog_text_size"
android:theme="@style/AppTheme.RadioButton" />
Run Code Online (Sandbox Code Playgroud)
更多:drawablePadding
属性不起作用.仅当您在单选按钮中添加了drawable时,它才有效.对于Eg:
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:button="@null"
android:drawableEnd="@android:drawable/btn_radio"
android:drawablePadding="56dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="New RadioButton" />
Run Code Online (Sandbox Code Playgroud)