4

当使用 drawableLeft 使用带有额外可绘制对象的复选框(除了用于复选框的复选框)时,两个可绘制对象相互重叠。

复选框设置没有什么特别之处,这里:

<CheckBox android:id="@+id/low_priority_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/low_priority"
    android:textColor="@color/primary_text"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:drawableLeft="@drawable/ic_primary_priority_flag_low_medium"/>

实际结果:

在此处输入图像描述

预期结果:

在此处输入图像描述

在 API <= 16 的设备上,compileSdkVersion 22 会出现此问题

顺便说一句,使用 drawableRight 可以正常工作。

这是框架中的错误吗?任何解决方法?

4

1 回答 1

0

为复选框添加样式(style="@android:style/Widget.Holo.Light.CompoundButton.CheckBox"),可以将drawable移动到正确的位置。唯一的问题是,对于 API <= 16 的设备,drawable 和 text 之间的距离比正常情况大。

我的 CheckBox xml 之一如下所示:

            <CheckBox
                android:id="@+id/male_toilet_checkbox"
                style="@android:style/Widget.Holo.Light.CompoundButton.CheckBox"
                android:layout_width="wrap_content"
                android:layout_height="28dp"
                android:drawableLeft="@drawable/m"
                android:drawableStart="@drawable/m"
                android:text="@string/male_toilet"
                android:textSize="14sp"
                android:textColor="#ff6c51ff"
                app:layout_constraintTop_toBottomOf="@+id/split_line1" />

于 2018-03-18T11:27:46.090 回答