RecyclerView-错误收集:当你刷新RecyclerView程序崩掉的时候(1)
来源:互联网 发布:su建模软件 编辑:程序博客网 时间:2024/05/22 10:43
报错信息
摸着后脑勺,一脸懵逼地看着Android Studio打印着下面这段日志:
java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:5420) at android.support.v7.widget.RecyclerView$Recycler.quickRecycleScrapView(RecyclerView.java:5506) at android.support.v7.widget.RecyclerView$LayoutManager.removeAndRecycleScrapInt(RecyclerView.java:8023) at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3447) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3194) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3627) at android.view.View.layout(View.java:16009) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1195) at android.view.View.layout(View.java:16009) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1795) at android.view.View.layout(View.java:16009) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131) at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1367) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:849)
后来百度发现原因是:
onRefresh方法里的数据清空应该放在请求数据成功后再清空!
mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { contents.clear(); current_page = 1; netData(current_page + ""); mRecyclerView.refreshComplete(); } @Override public void onLoadMore() { current_page++; netData(current_page + ""); mRecyclerView.loadMoreComplete(); } });
其解决方法是:
将列表清空的方法放到获取到接口数据以后执行。
@Override protected void requestBody(List<BillListEntity> data) { promptDialog.dismissImmediately(); if (contents.size() != 0 && "1".equals(current_page) ) {//剔除重复加载第一页 contents.clear(); }
阅读全文
0 0
- RecyclerView-错误收集:当你刷新RecyclerView程序崩掉的时候(1)
- RecyclerView的局部刷新
- RecyclerView优雅的刷新
- RecyclerView的下拉刷新
- RecyclerView的刷新加载
- RecyclerView的刷新分页
- RecyclerView的局部刷新
- RecyclerView刷新
- recyclerView 刷新
- RecyclerView详细介绍-----解决点击事件,刷新错误(二)
- Recyclerview刷新延迟的问题
- RecyclerView局部刷新的坑
- 搭配SwipeRefreshLayout的Recyclerview刷新
- RecyclerView+OkHttp的下拉刷新
- <转载>RecyclerView的刷新方法
- 关于RecyclerView notifyItemChanged() 刷新下标错误问题
- 当popupWindow内嵌套recyclerView布局过长的时候会被顶上去的问题
- Scrollview (NestedScrollView) 嵌套 RecyclerView 的时候RecyclerView 抢焦点
- javaweb 网页
- 并查集的使用(3):连通图
- Cookie和Session以及两者区别
- (hdu 2089)不要62(数位DP)
- 19-特殊工具和技术
- RecyclerView-错误收集:当你刷新RecyclerView程序崩掉的时候(1)
- 星际之门(一)
- 非常好用的android特效
- 非监督特征学习与深度学习(八)----神经网络向量化
- cf——签(神tm浪的一匹)
- 信息检索模型
- 编译php5.2.17时的几个依赖
- 非常好用的android特效
- 【deeplearning.ai】Neural Networks and Deep Learning——深层神经网络