解决XRecyclerView动态切换布局管理器 多次调用setAdapter崩溃
来源:互联网 发布:查看本地数据库ip 编辑:程序博客网 时间:2024/06/06 02:45
在做到类似于淘宝的商品列表界面时,要动态切换布局管理器。由于之前使用原生RecyclerView加XRefreshView嵌套在DrawableLayout里,结果XRefreshView上拉加载出了问题,所以只能换XRefreshView来做,刚开始一切都好,就在提交代码之前,测了一下切换布局,结果就崩了。
XRecyclerView$DataObserver@1d277a15 is already registered.
报以上错误,
查看源码
@Overridepublic void setAdapter(Adapter adapter) { mAdapter = adapter; mWrapAdapter = new WrapAdapter(mHeaderViews, mFootViews, adapter); super.setAdapter(mWrapAdapter); mAdapter.registerAdapterDataObserver(mDataObserver);}
此处再给适配器注册了观察者后,当再次调用setAdapter()时,就会报以上错误;
修改如下:
@Overridepublic void setAdapter(Adapter adapter) { mAdapter = adapter; mWrapAdapter = new WrapAdapter(mHeaderViews, mFootViews, adapter); super.setAdapter(mWrapAdapter); if (mAdapter.hasObservers()) { mAdapter.unregisterAdapterDataObserver(mDataObserver); } mAdapter.registerAdapterDataObserver(mDataObserver);}
加判断,如果已经注册了,就取消注册,重新注册。
目前就是我想到的解决办法,如果有更好的,再拿出来分享。
1 0
- 解决XRecyclerView动态切换布局管理器 多次调用setAdapter崩溃
- XrecyclerView加载数据+切换不同布局
- 多次调用replaceScene引发的崩溃
- Android中调用listview 控件的 listview.setAdapter(adapter)程序闪退、崩溃
- Android中调用listview 控件的 listview.setAdapter(adapter)程序闪退、崩溃
- 解决ListView,Gallery的Adapter中由于布局问题导致的getView多次调用问题
- xrecyclerview多条目布局
- XRecyclerView多布局
- XRecyclerView多布局2
- Android解决4.2的listview setadapter以后不能添加头布局的问题
- 解决Fragment切换过快程序崩溃
- 解决ListView,gridView多次调用getView
- 完美解决RadioGroup setOnCheckedChangedListener 多次调用问题
- 解决RadioGroup setOnCheckedChangedListener多次调用
- android 完美解决getview position多次调用
- js最简单幻灯片切换支持同一页面多次调用
- ViewPager加载Fragment,切换时onCreateView多次调用问题
- JS动态切换图片(一个页面中可多次使用)
- Spring boot处理Long类型的Json数据,在Js代码调用时精度丢失的问题
- 正则表达式验证IP地址
- 前端开发框架之AngularJS篇
- 总结
- 【Java】Java根据出生日期计算还有几天的生日
- 解决XRecyclerView动态切换布局管理器 多次调用setAdapter崩溃
- 解析常见网络钓鱼攻击方法
- svn权限分配
- Netlink通信kernel and user space
- C# 遍历TreeView所有节点
- Deposit 30 Free 50 Promotion(free bonus, sky3888, sky3888 registerdeposit promotion, sky3888 top up)
- 浅析Hadoop中的数据倾斜
- java多态的理解及深入认识
- 文档编号与文档版本号的作用