当我将此属性设置为ListView时,有人可以告诉我原因:
mList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
列表中的项目似乎会在我点击其中一个时重新加载?如果我删除行为没有显示的属性。
我在我的活动的OnCreateView方法中设置了这个,我也可以在我的xml中设置它得到相同的结果:
<ListView
android:id="@+id/lista"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="@string/per_lista"
android:fadingEdge="none"
android:divider="#e2e2e2"
android:dividerHeight="1dp"
android:choiceMode="singleChoice">
答案 0 :(得分:3)
每次检查/取消选中某个项时,ListView都会调用requestLayout(),这会导致重新绘制其子项。但这并不意味着物品正在重新装载。如果您的商品正在重新加载,那么我们需要更多信息。如果您想要查看,可以找到ListView源here。
不幸的是我不知道,我甚至不确定你是否可以避免重新绘制列表项。这是重绘项目后的预期行为,因此可以根据选择设置或重置其选定状态。您始终可以使用源代码作为您自己的自定义ListView的基础,该选择状态更改后不会请求布局传递/重绘。