我有ListView
onItemClick
所选项目更改其布局,弹出不同的按钮。如果选择了任何其他项目,则先前选择的项目将恢复正常。我的ListView
适配器工作正常,但在我的适配器中使用notifyDataSetChanged()
刷新整个列表需要花费太多时间。
我的问题是只刷新ListView
中更改的项目。
而且我想提出更好的滚动性能的建议。
答案 0 :(得分:1)
您可以在适配器类中定义一个方法,该方法将返回当前项目视图。在onitemclick中使用此方法对单击的项目进行更改。您可以在activity中定义类视图类型类变量,并将前一个视图存储在那里......
答案 1 :(得分:1)
当文本视图,图像等小工具位于布局层次结构的底部时,ListView滚动性能会变慢。
因此,为了提高列表性能,应该设计具有最小布局树级别的项目xmls。
答案 2 :(得分:1)
尝试实施查看持有人模式,这会提高ListViews
Making ListView Scrolling Smooth | Android Developers
Using lists in Android (ListView) - Tutorial - Vogella
来自文档:
您的代码可能会在滚动
findViewById()
期间经常调用ListView
,这会降低性能。即使适配器返回一个膨胀的视图以进行回收,您仍然需要查找元素并更新它们。重复使用findViewById()
的方法是使用"视图持有者" 设计模式。