BaseRecyclerViewAdapterHelper 上拉加载过程产生的问题
来源:互联网 发布:淘宝wap流量是什么意思 编辑:程序博客网 时间:2024/06/16 11:42
本周自己写了个框架:ViewPager+Fragment+SwipeRefreshLayout+RecyclerView加载数据,以达到导航切换页面的同时可以水平滑动切换页面(共三个页面),很常见的导航切换布局。
因为要做到当前页面显示时方去加载数据,重写了fragment的setUserVisibleHint方法,在其内部做数据初始化等操作。部分代码如下:
@Overridepublic void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (getUserVisibleHint()) { initVisible(); }}private boolean hasGetData = false;protected void initVisible() { //当前页面可见的时候才将要展示的列表视图解析到容器布局里 if (!hasGetData) { hasGetData = true; child=act.getLayoutInflater().inflate(R.layout .fragment_replenish_model, flContainer); initView(); initData(); initListener(); }}
注意:ViewPager第一个加载的页面是不做这些处理的,因为setUserVisibleHint方法是先于onCreateView这些生命周期的方法执行,刚进入页面时候如果直接走setUserVisibleHint方法来做数据处理是会产生很多麻烦的。这里只针对后续加载页面做的抽取。同时,ViewPager设置预加载页面个数为n-1(n为页面总个数,我这里是3个页面):vp.setOffscreenPageLimit(2);
接下来就是问题了:
*项目关于数据刷新及加载更多使用RecyclerView配套的BaseRecyclerViewAdapterHelper框架,然后在数据上拉加载更多时候就产生了*cannot call this method while RecyclerView is computing a layout or scrolling 异常问题。
这个问题同时出现在首次上拉及没有更多数据添加尾部局时候。
解决答案参考https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/763
部分参考代码如下:
//这里是上拉加载更多数据回调的方法部分参考代码 @Override public void updateAdapter(final List data) { recycler.post(new Runnable() { @Override public void run() { adapter.addData(data); } }); } //这里是没有更多数据时候添加尾部局部分参考代码 @Override public void setNoDataView() { recycler.post(new Runnable() { @Override public void run() { adapter.loadComplete(); View noDataView = act.getLayoutInflater().inflate(R.layout.footer_nomore_data, (ViewGroup) recycler.getParent(), false); adapter.addFooterView(noDataView); } }); }
0 0
- BaseRecyclerViewAdapterHelper 上拉加载过程产生的问题
- 简单好用的上拉加载下拉刷新 BaseRecyclerViewAdapterHelper
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习上拉加载的实现代码(三)
- BaseRecyclerViewAdapterHelper源码解读(四) 上拉加载更多
- javascript文件加载过程中产生的依赖问题
- BaseRecyclerViewAdapterHelper的使用姿势问题
- PullToRefreshListView的下拉刷新上拉加载更多问题
- 关于实现上拉加载的一些细节问题分析
- iScroll上拉加载下拉刷新 -> 遇到的问题
- ionic和angular上拉加载的问题
- 补充上拉刷新下拉加载的url问题
- RecyclerView的上拉加载
- Android ListView 上拉加载 定位问题
- ionic上拉加载更多问题
- MJRefresh的上拉加载的隐藏
- 自定义的上拉加载更多
- android 简单的上拉加载实现
- ios-上拉加载更多的界面
- java数组排列组合
- 正则表达式的验证以及使用 js
- File的使用
- 关联规则推荐算法的原理及实现
- 解决init serial (ttys2) main process ended respawning
- BaseRecyclerViewAdapterHelper 上拉加载过程产生的问题
- CC2541 BLE Peripheral工程的建立
- jq实现首次引导页面
- 51nod 1256 乘法逆元 (扩展欧几里得求逆元)
- SparseArray和ArrayMap相关源码解析
- Git在idea上的入门使用方法
- 程序性能优化之 内存分配影响
- 激活 DTP/DSO/DATA SOURCE
- 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置