RecyclerView与CheckBox的不期而遇
一、背景
计划是做一个手机应用列表弹窗,而弹窗要展示的内容是手机内自己安装的所有的APP,包括图标,应用名称和包名,采用了AlertDialog+View的方式来实现,代码如下:
- View
- 列表项
-
<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="fill_parent" android:layout_height="70dp" android:layout_margin="5dp" card_view:cardCornerRadius="5dp" card_view:cardElevation="5dp" card_view:cardMaxElevation="5dp" card_view:contentPadding="5dp"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="60dp"> <CheckBox android:id="@+id/list_chk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" /> <ImageView android:id="@+id/list_img" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginStart="50dp" android:layout_marginTop="6dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/list_title" android:layout_width="wrap_co
-
- 列表项

在Android开发中,创建一个包含RecyclerView和CheckBox的应用列表弹窗时遇到问题:选择部分条目后,滚动会导致未选中的条目被选中。通过使用HashMap存储CheckBox状态解决了这个问题,但滚动超过一定数量后,已选状态丢失。原因是RecyclerView的复用机制,当滚动到新的条目时,旧条目的CheckBox状态被错误地应用。解决方案是在绑定ViewHolder前清空CheckBox的监听事件,避免状态混乱。
最低0.47元/天 解锁文章
1366

被折叠的 条评论
为什么被折叠?



