有没有一种简单的方法可以在checkbox控件的复选框和相关文本之间添加填充?
我不能只添加前导空格,因为我的标签是多行的。
按原样,文本离复选框太近了:

发布于 2010-10-28 06:20:28
我讨厌回答我自己的问题,但在这种情况下,我认为我需要回答。在检查之后,@Falmarri的答案是正确的。问题是,android的CheckBox控件已经使用android:paddingLeft属性来获取文本。
红线显示了整个CheckBox的paddingLeft偏移值

如果我只是覆盖XML布局中填充,就会弄乱布局。下面是设置paddingLeft="0“的作用:

事实证明,您无法在XML中修复此问题。你已经用代码完成了这件事。下面是我的代码片段,其中增加了10dp的硬编码填充。
final float scale = this.getResources().getDisplayMetrics().density;
checkBox.setPadding(checkBox.getPaddingLeft() + (int)(10.0f * scale + 0.5f),
checkBox.getPaddingTop(),
checkBox.getPaddingRight(),
checkBox.getPaddingBottom());这为您提供了以下内容,其中绿色线条表示填充的增加。这比硬编码值更安全,因为不同的设备可以使用不同的可绘制复选框。

更新-正如人们最近在下面的答案中提到的那样,这种行为在Jelly Bean (4.2)中明显发生了变化。您的应用程序需要检查其运行在哪个版本上,并使用适当的方法。
对于4.3+,只需设置padding_left即可。有关详细信息,请参阅htafoya的答案。
发布于 2013-11-29 08:52:58
给定@DougW响应,我管理版本的操作就更简单了,我将其添加到我的checkbox视图中:
android:paddingLeft="@dimen/padding_checkbox"其中,dimen位于两个值文件夹中:
值
<resources>
<dimen name="padding_checkbox">0dp</dimen>
</resources>值-v17 (4.2 JellyBean)
<resources>
<dimen name="padding_checkbox">10dp</dimen>
</resources>我有一个自定义的检查,使用dps给你最好的选择。
发布于 2012-12-18 21:52:04
使用属性android:drawableLeft而不是android:button。要在可绘制和文本之间设置填充,请使用android:drawablePadding。要定位可绘制对象,请使用android:paddingLeft。
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:drawableLeft="@drawable/check_selector"
android:drawablePadding="-50dp"
android:paddingLeft="40dp"
/>

https://stackoverflow.com/questions/4037795
复制相似问题