java - findFirstVisibleItemPositions doesn't work for recycleview android -
java - findFirstVisibleItemPositions doesn't work for recycleview android -
i have code:
mrecycleview.setonscrolllistener(new recyclerview.onscrolllistener() { @override public void onscrolled(recyclerview recyclerview, int dx, int dy) { super.onscrolled(recyclerview, dx, dy); int[] firstvisibleitempositions = new int[getresources().getinteger(r.integer.news_numbers_column)]; int pastvisiblesitems = ((staggeredgridlayoutmanager)getlayoutmanager()).findfirstvisibleitempositions(firstvisibleitempositions)[0]; } });
when scroll recycleview error:
java.lang.nullpointerexception: effort invoke virtual method 'int android.support.v7.widget.orientationhelper.getstartafterpadding()' on null object reference @ android.support.v7.widget.staggeredgridlayoutmanager$span.findonevisiblechild(staggeredgridlayoutmanager.java:2177) @ android.support.v7.widget.staggeredgridlayoutmanager$span.findfirstvisibleitemposition(staggeredgridlayoutmanager.java:2153) @ android.support.v7.widget.staggeredgridlayoutmanager.findfirstvisibleitempositions(staggeredgridlayoutmanager.java:806) @ info.lanouvelletribune.apps.android.ui.fragments.newsfragment$1.onscrollstatechanged(newsfragment.java:90) @ android.support.v7.widget.recyclerview.setscrollstate(recyclerview.java:751) @ android.support.v7.widget.recyclerview.onintercepttouchevent(recyclerview.java:1535) @ com.github.ksoichiro.android.observablescrollview.observablerecyclerview.onintercepttouchevent(observablerecyclerview.java:188) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2060) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2431) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2173) @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:2390) @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1741) @ android.app.activity.dispatchtouchevent(activity.java:2826) @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:2351) @ android.view.view.dispatchpointerevent(view.java:8590) @ android.view.viewrootimpl$viewpostimeinputstage.processpointerevent(viewrootimpl.java:4098) @ android.view.viewrootimpl$viewpostimeinputstage.onprocess(viewrootimpl.java:3964) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3488) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3541) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3507) @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3515) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3488) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3541) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3507) @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:3617) @ android
how can handle error , first visible item position?
i tested code , works fine me
int positionview = ((linearlayoutmanager)recyclerview.getlayoutmanager()).findfirstvisibleitemposition();
i used recycle view parameter.
java android recyclerview android-recyclerview
Comments
Post a Comment