当前位置: 首页 > news >正文

海北藏族自治州网站建设_网站建设公司_JSON_seo优化

网站源代码怎么放入 dede网站后台,好男人hd免费观看,中国十大电商公司,枸橼酸西地那非片是什么点击跳转Unity3D特效百例点击跳转案例项目实战源码点击跳转游戏脚本-辅助自动化点击跳转Android控件全解手册点击跳转Scratch编程案例点击跳转软考全系列 #x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧#xff0c;以及各种资源分享Unity3D特效百例点击跳转案例项目实战源码点击跳转游戏脚本-辅助自动化点击跳转Android控件全解手册点击跳转Scratch编程案例点击跳转软考全系列 关于作者 专注于Android/Unity和各种游戏开发技巧以及各种资源分享网站、工具、素材、源码、游戏等 有什么需要欢迎底部卡片私我交流让学习不再孤单。 实践过程 问题 近来项目里RecyclerView 更新数据偶尔出现 crash错误日志如下 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{2064e5c6 position2 id-1, oldPos2, pLpos:-1 scrap [attachedScrap] tmpDetached no parent}at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:4505)at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4636)at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:2979)at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2904).....这类问题出现的原因是数据变化和更新不同步造成的不如你 clear 了然后又等接口请求完毕 add 了只进行了一次 adapter 更新再比如你在滑动的过程中数据源被你的某个业务逻辑改变了数据。 总之就是突出一个思想数据的任何一次变动没有及时进行 adapter 的更新造成的。 遇到这类错误 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder通过查阅 Stackoverflow 和资料总结了如下情况和解决方法 解决 方法一 自己写一个继承 LinearLayoutManager 的包装类在 onLayoutChildren() 方法里 try-catch 捕获该异常。 Override public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {try {super.onLayoutChildren(recycler, state);} catch (IndexOutOfBoundsException e) {e.printStackTrace();} }方法二 在进行数据移除和数据增加时务必要保证 RecyclerView 的 Adapter 中的数据集和移除添加等操作后的数据集保持一致 这里前者是在该 Adapter 内部不妨叫做内部数据集后者是开发人员传过给 Adapter 的不妨叫外部数据集。更新RecyclerView 数据时需要保证外部数据集和内部数据集实时保持一致。 外部数据集同步到内部数据集使用如下的方法 notifyItemRangeRemoved();notifyItemRangeInserted();notifyItemRangeChanged();notifyDataSetChanged(); 这里对 notifyDataSetChange() 做些说明 使用该方法的更新内部数据集没有默认的动画效果同时更新数据的效率页不如上面的方法官方不推荐使用这种方式更新数据集。 Don’t call notifyDataSetChanged if you don’t have to.RecyclerView 的 Adapter 里发生异常的错误代码如下 public void notifyData(ListPoiItem poiItemList) {if (poiItemList ! null ) {mPoiItems.clear();mPoiItems.addAll(poiItemList);notifyItemRangeChanged(0, poiItemList.size());} }错误分析 mPoiItems 是外部数据集对该外部数据集做了两个操作先移除数据然后添加数据之后 notify 数据集。这里添加数数据时 Adapter 的内部数据集内容还处在外部数据集移除数据之前造成了内部和外部数据集不一致。 这是一方面另一方面我使用了 notifyItemRangeChanged() 来更新数据如果 poiItemList 传过来的新数据和原来 mPoiItems 的数据数量不一致就会出现内部数据集和外部数据在同步后不一致从而报错。 修复后运行正常的代码如下 public void notifyData(ListPoiItem poiItemList) {if (poiItemList ! null) {int previousSize mPoiItems.size();mPoiItems.clear();notifyItemRangeRemoved(0, previousSize);mPoiItems.addAll(poiItemList);notifyItemRangeInserted(0, poiItemList.size());} }修复分析 每一次对外部数据集做改动时都需要紧接着主动对外部数据集和内部数据集做一次同步操作动画效果也得到了保持使用方法三动画效果缺失 方法三 使用 notifyDataSetChanged 同步外部数据集和内部数据集。该方法简单但是失去了动画效果并且更新数据的性能低。 use notifyDataSetChanged() will avoid this crash, but it will kill Animation and Performance.另外如果对外部数据集做了二次以上的操作却只调用notifyDataSetChanged同步一次也很有可能会报上文所示的错误。 其他 作者小空和小芝中的小空 转载说明-务必注明来源https://zhima.blog.csdn.net/ 这位道友请留步☁️我观你气度不凡谈吐间隐隐有王者霸气日后定有一番大作为旁边有点赞收藏今日传你点了吧未来你成功☀️我分文不取若不成功⚡️也好回来找我。 温馨提示点击下方卡片获取更多意想不到的资源。
http://www.ihoyoo.com/news/112466.html

相关文章:

  • 西夏区建设交通网站移动应用软件开发
  • 免费大气网站模板如何查网站的备案信息
  • 特卖网站怎么做外贸企业网页制作
  • 网站下载不了怎么解决深圳网站系统找哪里
  • 网站qq 微信分享怎么做的重庆短视频seo搜索多少钱
  • 商丘网站建设有限公司中山网站建设如何
  • 怎么做企业网站建设分享10个国外优秀的平面设计网站
  • 想在百度上做网站济南网站营销
  • 中企动力建的网站如何大型网站开发企业
  • 电子商务网站经营特色分析的主要内容包括flash网站制作单选框和复选框ui组件
  • 佛山网站建设十年乐云seo超溜网站建设
  • 咸阳做网站电话阿里巴巴黄页网1688
  • 做网站需要什么人员做淘客网站
  • 如何入侵网站服务器域名批量注册查询
  • 温州网站建设方案表强大的wordpress 二次开发
  • 网站 设计公司 温州wordpress双语站点
  • 如何推销企业建设网站长沙sem培训
  • 绥化市网站建设网站开发部门工资会计分录
  • 做外账要登什么网站怎么选择赣州网站建设
  • 如何弄死一个网站网络优化怎么自己做网站
  • 化妆品网站建设方案交互设计的方法和技巧
  • 公司网站设计哪家好郑州建设信息网可以领证书吗
  • 网站开发天晟合益网站运维是做什么的
  • 如何dns解析网站网站开发公司经营范围怎么写
  • 访问自己做的网站ps做网站画布多大
  • 工商网站注册公司制作app需要哪些知识
  • 河北建设厅网站设置如何创建网址免费注册
  • 凉山彝族自治州网站建站浏览器打开mht文件乱码
  • 福州专业制作网站网站开发设计公
  • 宁波奢华做网站排名wordpress 用微信登陆