美文网首页Android开发
Android开发SmartRefreshLayout刷新时马上

Android开发SmartRefreshLayout刷新时马上

作者: 你的益达233 | 来源:发表于2022-07-11 16:12 被阅读0次

一、前言:如题,刷新时为啥会闪退呢,不用怀疑别人的库的问题,如果这么浅显的bug都存在,它就不会开放出来给大家用了

二、可以看下闪退的log。它好像报越界

hread Name: 'main'
2022-07-11 15:59:55.913 3248-3248/com.jytvik.chat E/DEBUG: Back traces starts.
2022-07-11 15:59:55.913 3248-3248/com.jytvik.chat E/DEBUG: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 8(offset:8).state:10 androidx.recyclerview.widget.RecyclerView{264bd49 VFED..... ........ 0,0-1440,2684 #7f080371 app:id/rv_msg}, adapter:com.jytvik.chat.ui.adapter.ZimHomeAdapter003@607064e, layout:androidx.recyclerview.widget.GridLayoutManager@33da36f, context:com.jytvik.chat.ui.activity.ZimHomeActivity@271369e
2022-07-11 15:59:55.913 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6183)
2022-07-11 15:59:55.913 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
2022-07-11 15:59:55.913 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
2022-07-11 15:59:55.914 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
2022-07-11 15:59:55.914 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
2022-07-11 15:59:55.914 3248-3248/com.jytvik.chat E/DEBUG: at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)

三、应该你的log和我的差不多

四、问题的关键

一边操作着数据源,一边在notifyDataSetChanged。仔细检查下是不是有这样的代码。

比如:你有调清除数据源方法,然后你滑动了,界面上想复用item,是不是找不到数据源了。

五、解决方案

首先检查数据源是不是在其他地方调用。

实在找不出原因了,就刷新时禁止滑动,示例代码如下。

      mRecyclerView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (refreshLayout.isRefreshing()){
                return true;
            } else {
                return false;
            }
        }
    });

相关文章

网友评论

    本文标题:Android开发SmartRefreshLayout刷新时马上

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