Android Heroes Reading Notes 3



第四章 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或者反射来实现修改。