我在项目中使用了一个复选框,但是我无法消除左边的填充,因此对齐方式不正确。
任何人都知道如何消除左边填充?
答案 0 :(得分:1)
经过一些研究后我发现,这个特定的边际是在格子广场的可绘制范围内。所以我认为唯一的解决方案是创建一个自定义的drawable
答案 1 :(得分:0)
这是因为Android Checkbox使用的drawable有自己的边距。 因此,要避免它,您必须创建自己的复选框,其中包含自定义drawable和已检查和未选中状态的图标。
1>为您的复选框创建自定义选择器,如:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/ic_unchecked" />
<item android:state_checked="true" android:drawable="@drawable/ic_checked" />
<item android:drawable="@drawable/ic_unchecked" /> <!-- default -->
</selector>
2&gt;然后在你的xml中添加一个普通的复选框,将drawable和button属性设置为null,并将你的选择器指定为你的复选框的左侧drawable。同时给出一个可绘制的填充,以在复选框图标和文本之间给出一些填充。 / p>
<CheckBox
android:id="@+id/chk_terms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:button="@null"
android:drawableLeft="@drawable/custom_checkbox"
android:drawablePadding="@dimen/margin_left_right"
android:text="@string/i_agree"
android:textSize="@dimen/text_size_small"
/>
注意 - &gt;
这个解决方案还解决了android 4.2上方复选框的填充问题。这也称为HERE