关于RecyclerView嵌套导致item复用异常,界面异常的问题

常规需求:

外层RecyclerView嵌套内层RecyclerView , 在上下滑动的时候会出现item数据以及view的显示异常。

解决办法:

1、重写  getItemViewType  方法

    /**
     * 重写 避免滑动过程界面混乱
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        return position;
    }

2、因为是RecyclerView的复用机制导致的问题,可以暴力解决,禁止RecyclerView的复用,则不会出现view的异常

   使用方法:

   在 protected void convert()方法中执行 

.setIsRecyclable(false); // 禁止复用

  注意,禁止复用会导致性能过低,若是列表中没有图片等耗性能需求,则可以考虑使用

                 禁用复用会导致remove()  notifyItemRemoved() notifyItemRangeChanged()等一系列刷新删除操作出现异常,若有该需求,则不适用该方法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券