Giter Site home page Giter Site logo

PullToRefreshUseActivity界面快速滑动很容易就挂掉了, 暂时还没发现具体原因 about baserecyclerviewadapterhelper HOT 22 CLOSED

cymchad avatar cymchad commented on May 1, 2024
PullToRefreshUseActivity界面快速滑动很容易就挂掉了, 暂时还没发现具体原因

from baserecyclerviewadapterhelper.

Comments (22)

CymChad avatar CymChad commented on May 1, 2024 2

compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.7.7' 这个版本已经解决了上拉再下拉的问题了

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

请描述复现的过程,最好能够提供使用代码,这边无法复现,所以无法很好的解决。

from baserecyclerviewadapterhelper.

HolenZhou avatar HolenZhou commented on May 1, 2024

我clone当前这个库的代码跑到手机上,没有改动任何代码,跑到手机上,在PullToRefreshUseActivity界面手指快速上下滚动list,偶尔就会出现这个崩溃。我准备用你的库,现在也在看这个bug,这里有个一样的问题:https://code.google.com/p/android/issues/detail?id=77846#hc141

from baserecyclerviewadapterhelper.

HolenZhou avatar HolenZhou commented on May 1, 2024

recycler_bug

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

恩,了解,看来这个是recyclerview控件本身,更新数据的时候出的问题,我这边也想想解决方案。我这边是在无法复现,我先多试试几台机器,非常感谢!

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

你试下这个看可以不?http://blog.csdn.net/lovexieyuan520/article/details/50537846 因为我这边无法复现,所以不能很好的测试,麻烦你那边测试一下。

from baserecyclerviewadapterhelper.

linheimx avatar linheimx commented on May 1, 2024

@CymChad 博客的内容:捕获这个异常,确实可以这个解决问题。

但是,快速的下拉刷新,上来加载(最好多试几次),新的问题又来了:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 13(offset:13).state:14 at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4659)

from baserecyclerviewadapterhelper.

linheimx avatar linheimx commented on May 1, 2024

尝试用这个解决:http://stackoverflow.com/questions/30220771/recyclerview-inconsistency-detected-invalid-item-position
不行,:(

from baserecyclerviewadapterhelper.

linheimx avatar linheimx commented on May 1, 2024

再附上一个链接(也许有帮助):HabitRPG/habitica-android#108

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

恩 好的 多谢 我看看

from baserecyclerviewadapterhelper.

 avatar commented on May 1, 2024

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{fb9eb29 position=13 id=-1, oldPos=-1, pLpos:-1 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.scrollBy(LinearLayoutManager.java:1180)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1031)
at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1529)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2486)
at android.view.View.dispatchTouchEvent(View.java:9306)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2241)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
at android.app.Activity.dispatchTouchEvent(Activity.java:2820)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
at android.view.View.dispatchPointerEvent(View.java:9526)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4255)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4121)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3662)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3715)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3681)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3807)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3689)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3864)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3662)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3715)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3681)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3689)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3662)
at android.view.V

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 21(offset:21).state:22
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4659)
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.scrollBy(LinearLayoutManager.java:1180)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1031)
at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4061)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
at android.view.Choreographer.doCallbacks(Choreographer.java:672)
at android.view.Choreographer.doFrame(Choreographer.java:605)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5438)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)

我也遇到过了,好像就是RecyclerView 本身的问题。
https://drakeet.me/recyclerview-bug-indexoutofboundsexception-inconsistency-detected-invalid-item-position-solution?utm_source=tuicool&utm_medium=referral

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

恩 是RecyclerView 本身的问题, 你用上面的那个方法,解决了 Inconsistency detected. Invalid view holder adapter 吗?

from baserecyclerviewadapterhelper.

JeffrayZ avatar JeffrayZ commented on May 1, 2024

请问这个问题有解决思路吗???我今天也遇到这个问题了

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

我的想法是,当上拉的时候显示一个弹出框,禁止用户操作,等加载完成后再让用户操作,这样就不会出现这种问题了。

from baserecyclerviewadapterhelper.

JeffrayZ avatar JeffrayZ commented on May 1, 2024

我好像解决了这个问题,但是只能是保证不蹦,可能点击事件有问题,没具体看。用的是非常基本的办法,别笑话我!
@OverRide
public void addFooterView(View footer) {
super.addFooterView(footer);
mFooterView = footer;
}

public View getFooterView(){
    return mFooterView;
}

@Override
public void addHeaderView(View header) {
    super.addHeaderView(header);
    mHeaderView = header;
}

public View getHeaderView(){
    return mHeaderView;
}
@Override
public int getItemCount() {
    if (getFooterView() != null && getHeaderView() != null){
        return mData.size() + 2;
    } else if (getFooterView() != null || getHeaderView() != null){
        return mData.size() + 1;
    } else {
        return mData.size();
    }
}

这样好像是可以的。对了,在主代码里面记得加上adapter.addFooterView(View mView);

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

getFooterView() != null && getFooterView() != null 这两个不是一样的吗?

from baserecyclerviewadapterhelper.

Chenayi avatar Chenayi commented on May 1, 2024

非常感谢,纠结了这问题好久

from baserecyclerviewadapterhelper.

PongPloy2016 avatar PongPloy2016 commented on May 1, 2024

you try

mRecyclerView.getRecycledViewPool().clear();
adapter.notifyDataSetChanged();

from baserecyclerviewadapterhelper.

blackhorse6 avatar blackhorse6 commented on May 1, 2024

2.2.2还是出现这样的问题

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

@chenbinzhou 更新最新版本

from baserecyclerviewadapterhelper.

PongPloy2016 avatar PongPloy2016 commented on May 1, 2024

hey you !!! What is problem often to java.lang.IndexOutOfBoundsException and Then fix it @CymChad

from baserecyclerviewadapterhelper.

CymChad avatar CymChad commented on May 1, 2024

Is issue of notifyDataSetChanged @PongPloy2016

from baserecyclerviewadapterhelper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.