我正在开发我的第一个Android应用。我有ListActivity
使用SimpleCursorAdapter()
使用自定义布局填充列表。当行数变得非常大时,加载列表的有效方法是什么?
由于我是Android的新手,我不确定幕后会发生什么。假设我的结果集返回500行 - ListActivity
只会渲染可见区域中的那些还是会尝试渲染所有500行?
我是否应该实施ListView.OnScrollListener
来一次只加载25行?是否有某种内置的分页机制我还没有偶然发现?
答案 0 :(得分:2)
不要担心数据集大小方面的效率,因为系统会进行必要的优化。 你可以在哪里使事情变得更加顺畅是加载光标:确保你使用LoaderManager和CursorLoader,因为现在不推荐使用SimpleCursorAdapter构造函数,因为它导致游标查询被运行在UI线程上(参见this)。
答案 1 :(得分:0)
我想您需要使用视图持有者模式来重用ListView行,请查看本教程http://www.vogella.de/articles/AndroidListView/article.html
答案 2 :(得分:0)
Android会根据需要创建并销毁ListView中的每个View,您不必担心它。就像Chunhui说的那样,ViewHolder模式也会有助于提高ListView的帧率,如果它感觉迟钝的话。