ListView上拉下拉刷新实现
ListView 的上下拉刷新,算是 Android 里挺常见的一种交互方式了。你在刷新闻、看微博这些 App 里,基本都能遇到。下拉刷新用SwipeRefreshLayout
搞定就行,包一层 ListView,用户往下一拉就能触发刷新,方便。
上拉加载更多就稍微麻烦点,得监听onScrollListener
,判断滑到底部了没,再触发加载逻辑。要是用户一口气滑得快,记得加个加载提示,免得他以为程序卡住了。
不过,有时候官方的组件不够灵活,动画也太普通。要玩出花样,比如自定义刷新动画或者加点手势识别,你就得自己写一个ViewGroup
,把 ListView 和自定义逻辑绑一起。
数据更新也别忘了,拉完新数据回来,更新ArrayList
,notifyDataSetChanged()
,ListView 才会重新渲染。
性能上可以试试ViewHolder
,避免重复 findViewById,还可以懒加载、异步任务,减少主线程压力。
动画部分可以加点料,比如刷新时让图标转一转,加载更多时放个 loading 小圈圈。这样交互上更自然,用户体验也更好。
网络异常也要防着点,加载失败时给个 toast 或者“点击重试”,不然用户只会觉得 App 挂了。
,多测试。不同手机、不同 Android 版本上跑一跑,别哪天一上真机才发现滑不动。
如果你要做个稳定好用的 ListView 刷新功能,可以看看下面这几个链接,都是蛮实用的:
6.17KB
文件大小:
评论区