第四章 ListView的使用技巧
ListView常用优化技巧
使用ViewHolder模式提高效率
使用ViewHolder模式充分利用了ListView的缓存机制,避免了每次在调用getView()的时候都去调用findViewById()实例化控件。据测试,使用ViewHolder将提高50%以上的效率。
设置项目的分割线
ListView的各个item之间可以通过设置分割线来区分。
android:divider="@drawable @color"
android:dividerHeight="xxdp"
如果不想显示分割线,直接设置
android:divider="@null"
隐藏滚动条
anddroid:scrollbars="none"
取消ListView的item的点击效果
android:listSelector="@color/transparent"
设置显示第几项
listView.setSelection(N);
处理空ListView
如果没有数据,一般都会给用户一个没有数据的提示。ListView提供了一个方法:setEmptyView()
,通过这个方法我们可以给ListView设置一个在空数据下显示的默认提示。
具有弹性的ListView
ListView中有一个mOverscrollDistance变量(在AbsListView),注释中说明是:Maximum distance to overscroll by during edge effects,最终的取值在ViewConfiguration
,mOverscrollDistance = OVERSCROLL_DISTANCE;
,默认值是0,但其实只要修改这个参数就可以让ListView具有弹性了。可以使用继承ListView或者反射来实现修改。