CheckBox 在新 Android Material 库中无法正常工作,无法看到实际的复选标记

CheckBox not working properly in new Android Material Library, not able to see actual checkmarks

我做了两件事:

  1. 迁移到 Android X
  2. 将应用迁移到 AppCompat

完成这 2 项操作后,复选框在 Listview 中无法正常工作。这是我的代码:

build.gradle:

dependencies {

    implementation files('libs/httpmime-4.3.jar')
    implementation files('libs/httpcore-4.3.jar')
    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
    implementation 'com.google.android.material:material:1.0.0-rc01'
}

复选框行:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/facets"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/ten_dip"
    android:gravity="center_vertical"
    android:orientation="horizontal"  
    android:weightSum="1.0" >

    <LinearLayout
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="0.97"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title_tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            />

        <TextView
            android:id="@+id/title_tv_number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
             />
    </LinearLayout>

    <CheckBox
        android:id="@+id/facets_img_checkbox"
        android:layout_width="wrap_content"
        android:clickable="true"
        android:layout_height="wrap_content"
        />

</LinearLayout>

列表视图布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:clickable="true"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".1"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:background="@color/white"
        android:elevation="2dp"
       >

    <LinearLayout
        android:id="@+id/back_button_filter"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_alignParentLeft="true"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/back_button"
                app:srcCompat="@drawable/ic_caret_back"
                android:padding="5dp"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:paddingLeft="10dp"
                android:text="Filters"
                android:gravity="center_vertical"
                android:textSize="18sp"
                android:textColor="@color/black_555555"
                android:fontFamily="sans-serif"/>
        </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/reset_button"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:layout_alignParentRight="true"
        android:text="RESET"
        android:textColor="@color/linkcolor"
        android:gravity="center_vertical"
        android:fontFamily="sans-serif"
        android:textSize="18sp" />
</RelativeLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:background="@color/click_menu"
    android:orientation="horizontal"
    android:paddingTop="@dimen/five_dip"
    android:paddingBottom="5dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:layout_gravity="center_vertical"
    android:layout_weight=".1"
    android:weightSum="1">

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:text="Sort by"
        android:gravity="center_vertical"
        android:textColor="@color/black_555555"
        android:fontFamily="sans-serif"
        android:textSize="14sp"
        android:layout_weight=".25"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".75"
        android:orientation="horizontal"
        android:weightSum="2"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical">

        <TextView
            android:id="@+id/relevence_facets"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/blue_rectangle_button"
            android:gravity="center"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:textSize="14sp"
            android:text="Relevance"
            android:textColor="@color/white"
            android:fontFamily="sans-serif"
            android:layout_marginRight="10dp"/>

        <TextView
            android:id="@+id/freshness_facets"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:textSize="14sp"
            android:text="Freshness"
            android:fontFamily="sans-serif"
            android:textColor="@color/black_555555" />
    </LinearLayout>
</LinearLayout>



    <LinearLayout
        android:id="@+id/facets_item"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_weight=".73"
        android:weightSum="1">

        <ScrollView
            android:id="@+id/search_facets"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".35"
            android:fillViewport="true"
            android:background="@color/click_menu"
            >


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:weightSum="7">

                <TextView
                    android:id="@+id/location_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:text="Location"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:textStyle="bold"
                    android:background="@color/white"
                    android:layout_weight=".75"/>
                <TextView
                    android:id="@+id/experience_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="@string/experience"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>

                <TextView
                    android:id="@+id/salary_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="@string/salary"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>

                <TextView
                    android:id="@+id/industry_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="Industry"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>

                <TextView
                    android:id="@+id/fun_area_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="Department"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>
                <TextView
                    android:id="@+id/job_type_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="Job type"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>
                <TextView
                    android:id="@+id/top_companies_tv"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center|left"
                    android:paddingLeft="10dp"
                    android:text="Companies"
                    android:textColor="@color/black_555555"
                    android:textSize="@dimen/fourteen_sp"
                    android:layout_weight=".75"/>

            </LinearLayout>
        </ScrollView>

            <ListView
                android:id="@+id/list_view"
                android:layout_width="0dp"
                android:layout_weight=".65"
                android:layout_height="match_parent"
                android:background="@color/white"
                android:divider="#e7e7e7"
                android:dividerHeight="1dp"
                android:horizontalSpacing="@dimen/ten_dip"
                android:verticalSpacing="@dimen/ten_dip">
            </ListView>
        </LinearLayout>


        <TextView
            android:id="@+id/refine_text1"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".07"
            android:background="@drawable/button_yellow"
            android:gravity="center"
            android:layout_gravity="bottom"
            android:text="Apply filters"
            android:textStyle="bold"
            android:textColor="#fff"
            android:textSize="@dimen/sixteen_sp" />
</LinearLayout>

屏幕截图:

我看不到实际的复选标记,单击一个复选框时,它会更改列表中所有其他复选框的状态。

(代表问题作者发布答案)。

我成功了。

这是某种 Google 与以下 Oreo 版本的库兼容性问题。只需添加 checkbox.jumpDrawablesToCurrentState() 即可。