Android Viewpager PagerAdapter update data 刷新界面数据
2016-06-12 15:07
615 查看
最近做的项目涉及到ViewPager数据刷新,网上的资料挺多,但是和现在做的这个不太相同,所以并没有找到有效的。
折腾了大半天,整理一下思路:
问题1: 后台刷新数据次数过多后,界面出现卡顿现象,判断是重复添加ViewPager的View所致。
问题2: 后台刷新数据后,不再buildViewList,而是只调用adapter.notifyDataSetChanged(),结果界面数据并没有更新。
问题3: 尝试修改PagerAdapter,重写getItemPosition方法,返回POSITION_NONE,无效。
问题4: 重新考虑后台刷新数据后,buildViewList,将viewList清空后重新添加,仍然无效。
正确的思路应当是:后台刷新数据后,清空之前build的viewList,并viewPager.setAdapter(null),重新build viewList,
然后重新设定viewPager.setAdapter(adapter),再调用adapter.notifyDataSetChanged(),Over!
仅限本项目有效,其他项目没有太大的参考意义,在此仅记录一下解决思路,因为这次遇到问题时有点“乱投医”的感觉,
在网上不停的找方法,不停的试,却没有静下心来仔细思考解决思路,其实问题没那么难,解决起来也不麻烦,几行代码的事。
引以为戒。
折腾了大半天,整理一下思路:
问题1: 后台刷新数据次数过多后,界面出现卡顿现象,判断是重复添加ViewPager的View所致。
问题2: 后台刷新数据后,不再buildViewList,而是只调用adapter.notifyDataSetChanged(),结果界面数据并没有更新。
问题3: 尝试修改PagerAdapter,重写getItemPosition方法,返回POSITION_NONE,无效。
问题4: 重新考虑后台刷新数据后,buildViewList,将viewList清空后重新添加,仍然无效。
正确的思路应当是:后台刷新数据后,清空之前build的viewList,并viewPager.setAdapter(null),重新build viewList,
然后重新设定viewPager.setAdapter(adapter),再调用adapter.notifyDataSetChanged(),Over!
仅限本项目有效,其他项目没有太大的参考意义,在此仅记录一下解决思路,因为这次遇到问题时有点“乱投医”的感觉,
在网上不停的找方法,不停的试,却没有静下心来仔细思考解决思路,其实问题没那么难,解决起来也不麻烦,几行代码的事。
引以为戒。
相关文章推荐
- Android 官方自带的Edittext悬浮标签
- Google VR SDK for Android(3)- Getting Started(开始)
- Android Volley完全解析,带你从源码的角度理解Volley
- Android Studio没有自动提示解决方法之一
- android 4.3以上修改DNS 及 流程(netd)
- android Notification的使用
- 直接拿来用!最火的Android开源项目(完结篇)
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
- Android 6.0: 动态权限管理的处理
- Android中webview js与native方法互相调用
- Android studio 电话管理者(TelephonyManager)获取方法
- android基站和wifi定位
- Android广播事件机制
- Android的九宫格解锁有多少种情况?(from zhihu)
- Android Path中绘制的折线如何变得很平滑
- ANDROID L——RecyclerView,CardView导入和使用(Demo)
- Error: NDK integration is deprecated in the current plugin
- Android深入浅出之Binder机制
- Android工具HierarchyViewer代码导读(4) -- 前台代码
- Android工具HierarchyViewer 代码导读(3) -- 后台代码