RtlViewPager
RtlViewPager copied to clipboard
NullPointerException when notifying listener about page scrolled
Backtrace
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getLeft()' on a null object reference
at android.support.design.widget.TabLayout.calculateScrollXForTab(TabLayout.java:1191)
at android.support.design.widget.TabLayout.setScrollPosition(TabLayout.java:425)
at android.support.design.widget.TabLayout$TabLayoutOnPageChangeListener.onPageScrolled(TabLayout.java:2134)
at com.booking.rtlviewpager.RtlViewPager$ReverseOnPageChangeListener.onPageScrolled(RtlViewPager.java:253)
at android.support.v4.view.ViewPager.dispatchOnPageScrolled(ViewPager.java:1924)
at android.support.v4.view.ViewPager.onPageScrolled(ViewPager.java:1898)
at android.support.v4.view.ViewPager.pageScrolled(ViewPager.java:1836)
at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:688)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1780)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:132)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1361)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:874)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1172)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1766)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1610)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1519)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1766)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1610)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1519)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:774)
at android.view.View.layout(View.java:17708)
at android.view.ViewGroup.layout(ViewGroup.java:5631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2519)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2234)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1372)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6782)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:933)
at android.view.Choreographer.doCallbacks(Choreographer.java:742)
at android.view.Choreographer.doFrame(Choreographer.java:674)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:919)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6605)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:999)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:889)
The code in the support library that throws the exception is
final View selectedChild = mTabStrip.getChildAt(position);
...
int scrollBase = selectedChild.getLeft() + ...
so I have the impression that this might be fixed by #4 of @Biggemott. However, even if it has been merged almost two years ago, no new release has been made since then. @diego-gomez-olvera, could you please release a new version including this fix?