美文网首页Android开发
RecyclerView遇到的一些异常问题与解决

RecyclerView遇到的一些异常问题与解决

作者: zhaoyubetter | 来源:发表于2017-04-01 11:11 被阅读2519次

    问题1. Inconsistency detected##

    Inconsistency detected. Invalid item position 8(offset:8).state:25

    清空数据时,但没有notifyAll,这个时候新增数据时,报;

    问题2,条目点击 layoutPosition 返回 -1

    // 条目变动时操作,
    holder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // holder.getLayoutPosition() 在 条目变动时操作,极有有可能 return -1
    onItemClickListener.onItemClick(holder.itemView, holder.getLayoutPosition(), data.get(holder.getLayoutPosition()));
    }
    });

    这里强制 加入 try ... catch 来解决异常

    问题3 not a real child

    // 加载数据时,过快拉 recyclerview
    java.lang.IllegalStateException: Added View has RecyclerView as parent but view is not a real child. Unfiltered index:0
    解决方式:
    adapter 添加数据的时候,改成:

    /**
         * 添加数据
         *
         * @param items
         */
        public void addItems(List<T> items) {
            if (items != null && items.size() > 0) {
                int oldSize = data.size();
                if (oldSize > 0) {
                    data.addAll(items);
                    notifyItemRangeInserted(oldSize, items.size());
                } else {
                    replaceData(items);
                }
            }
        }
    

    相关文章

      网友评论

        本文标题:RecyclerView遇到的一些异常问题与解决

        本文链接:https://www.haomeiwen.com/subject/vltmottx.html