ListView的使用技巧

《android群英传》的读书笔记

虽然在Android 5.X时代,RecyclerView在很多地方都在逐渐取代ListView,但ListView的使用范围依然非常的广泛,它这万年老大哥的地方也不是轻易能撼动的。

ListView常用的优化技巧

1.使用ViewHolder模式提高效率

2.设置项目间分隔线

listview的各个项目之间,可以通过设置分隔线来进行区分,系统提供了divider和dividerHeight这样两个属性来帮助实现这一功能。通过这两个属性,也可以控制listview之间的分隔线和它的高度。当然,分隔线可以设置为一个颜色,同样也可以设置为一个图片资源。

3.隐藏ListView的滚动条

默认的listview在滚动时,在右边会显示滚动条,指示当前滑动的位置,我们可以设置scrollbars属性,控制ListView的滚动条状态。特别的,当设置scrollbars属性为none的时候,listview滚动或者不滚动都不会有滚动条出现。

4.取消listview的item点击效果

可以通过修改listSelector属性来取消掉点击后的回馈效果,也可以直接使用android自带的透明色来实现这个效果。

5.设置listview需要显示在第几页

listview以item为单位进行显示,默认显示在第一个item,当需要指定具体显示的item时:listview.setSelection(N);其中N就是需要显示的第N个item.当然这个方法是瞬间完成的,除此之外,还可以实现平滑移动。

6.动态修改ListView

listview中的数据在某些情况下是需要变化的,当然可以通过重新设置listview的adapter来更新listview的显示,但这也就需要重新获取一下数据,相当与重新创建listview,这样显然不是非常友好,而且效率不是很高。因此,可以通过如此方法实现:mData.add(“new”); mAdapter.notifyDataSetChanged();

7.遍历listview中所有的item

listview作为一个viewgroup,为我们提供了view的各种方法,最常用的就是通过getChildAt()来获取第i个子view.
for(int i=0;i

8.处理空listview

listview用于展示列表数据,但当列表中无数据时,listview不会显示任何数据或提示,按照完善用户体验的需求,这里应该给予无数据的提示。幸好,ListView提供了一个方法——setEmptyView(),通过这个方法我们可以给listview设置一个在空数据下的默认提示,在有数据时不会显示。

9.listview滑动监听

在listview中下功夫最多的就是监听,为了更加准确的进行监听滑动,通常还会使用GestureDelector手势识别,VelocityTracker滑动速度检测等辅助类来完成更好的监听。

1.OnTouchListener

OnTouchListener是view中的监听事件,通过监听ACTION_DOWN,AVTION_MOVE,ACTION_UP这三个事件发生时的坐标,就可以根据判断用户互动的方向,并在不同的事件中进行相应的逻辑处理。

2.OnScrollListener

OnScrollListener是AbsListView中的监听事件,他封装了很多ListView相关的信息,使用起来也更加的灵活

ListView常用扩展

1.具有弹性的ListView

2.自动显示,隐藏布局的listView

3.聊天ListView

4.动态改变ListView布局

你可能感兴趣的:(android,ListView)