【问题标题】:Android: Check box selector not working properlyAndroid:复选框选择器无法正常工作
【发布时间】:2016-04-19 15:48:07
【问题描述】:

我正在开发一个应用程序,我在其中使用复选框并在其上应用了选择器。我的复选框代码如下:

<CheckBox
    android:id="@+id/checkBox"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="0.5"
    android:button="@drawable/custom_checkbox"
    android:clickable="false"
    android:focusable="false"
    android:gravity="center" />

custom_checkbox.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/checkbox_checked" android:state_checked="true"/>
    <item android:drawable="@drawable/checkbox_checked" android:state_pressed="true"/>
    <item android:drawable="@drawable/checkbox_unchecked"/>

</selector>

checkbox_checked

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:drawable="@drawable/green_tic"/>
    <item>
        <shape android:shape="rectangle" >
            <corners android:radius="@dimen/corner_radius_for_ask_option"/>
            <size
                android:height="20dp"
                android:width="20dp" />
        </shape>
    </item>

</layer-list>

checkbox_unchecked

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <stroke
                android:width="2px"
                android:color="@color/color_light_grey" />

            <corners android:radius="@dimen/corner_radius_for_ask_option" />

            <size
                android:height="20dp"
                android:width="20dp" />
        </shape>
    </item>

</layer-list>

以上代码在 Note 3 和同类手机上运行良好。它看起来像:

但在三星 s2 上看起来像:

【问题讨论】:

  • 看起来这是common troubleandroid:buttonandroid:drawable 似乎是候选人。如果您更改为android:drawable=,会发生什么?
  • 实际上复选框的默认颜色因设备而异。并尝试在未选中的项目行中添加选中的 false 属性

标签: android android-layout checkbox android-checkbox android-selector


【解决方案1】:

尝试为您的形状添加透明实体:

<shape android:shape="rectangle" >
    <corners android:radius="@dimen/corner_radius_for_ask_option"/>
    <size
        android:height="20dp"
        android:width="20dp" />
    <solid android:color="@android:color/transparent"/>
</shape>

其他可绘制 XML 也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多