ListView选择模式

时间:2013-03-02 00:23:31

标签: android

当我将此属性设置为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">

1 个答案:

答案 0 :(得分:3)

每次检查/取消选中某个项时,ListView都会调用requestLayout(),这会导致重新绘制其子项。但这并不意味着物品正在重新装载。如果您的商品正在重新加载,那么我们需要更多信息。如果您想要查看,可以找到ListView源here

不幸的是我不知道,我甚至不确定你是否可以避免重新绘制列表项。这是重绘项目后的预期行为,因此可以根据选择设置或重置其选定状态。您始终可以使用源代码作为您自己的自定义ListView的基础,该选择状态更改后不会请求布局传递/重绘。