我有一个可扩展的列表,每行都有一个可切换的收藏夹按钮。名单很大,有1000多个元素。当其中一个元素切换并且列表开始滚动时,按钮会在看似随机的位置激活和停用。
我怀疑这可能是由于尝试访问我的视图时的内存行为,其中索引与当前的内存列表类似。
元素:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ToggleButton
android:id="@+id/fav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff=""
android:textOn=""
android:background="@drawable/fav_toggle" />
</RelativeLayout>
fav_toggle状态控件就像
一样简单<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@android:drawable/btn_star_big_on" />
<item android:state_checked="false" android:drawable="@android:drawable/btn_star_big_off" />
</selector>
未在代码中检索或使用该按钮,检查并重复检查。
答案 0 :(得分:0)
Android操作系统正在重复使用包含该按钮的视图来构建更新的视图。由于在适配器中重建视图时未存储和重新检查按钮状态,因此它将保留上一视图中的按钮状态。如果该视图选中了按钮,它将保持相同的状态。