首页 > 解决方案 > API < 21 的 Android 复选框按钮样式

问题描述

我为下面的复选框添加了样式

<style name="SurveyCheckBox" >
    <item name="colorControlNormal">@color/colorPrimaryLight</item>
    <item name="colorControlActivated">@color/colorSecondary</item>
    <item name="colorControlHighlight">@color/colorSecondaryDark</item>
</style>

它工作得很好,但我还为在回收站视图中动态创建的复选框添加了这种样式。在这种情况下,样式不会影响复选框。为了解决这个问题,我在项目名称前添加了“android:”。

<style name="SurveyCheckBox" >
    <item name="android:colorControlNormal">@color/colorPrimaryLight</item>
    <item name="android:colorControlActivated">@color/colorSecondary</item>
    <item name="android:colorControlHighlight">@color/colorSecondaryDark</item>
</style>

此属性在 API >=21 中有效,但在 <21 中无效。这个问题有什么解决办法吗?

recycler_view_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
android:padding="10dp">

<TextView
    android:id="@+id/survey_check_text"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="left|center"
    android:layout_weight="8"
    android:textColor="@color/colorOnBackground"
    android:textSize="16sp" />

<CheckBox
    android:id="@+id/survey_check_box"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:theme="@style/SurveyCheckBox" /> </LinearLayout>

标签: javaandroidcheckboxandroid-recyclerviewandroid-styles

解决方案


你试过用android.support.v7.widget.AppCompatCheckBox代替CheckBox吗?


推荐阅读