复选框材料设计

时间:2015-05-07 07:00:32

标签: android layout checkbox material-design

我在项目中使用了一个复选框,但是我无法消除左边的填充,因此对齐方式不正确。

enter image description here

任何人都知道如何消除左边填充?

2 个答案:

答案 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