更改为最新的Support-v4库后,onPageScrolled方法返回null

时间:2014-06-19 16:00:00

标签: android

我有一个奇怪的问题,我有一个对话框片段,这个方法在里面:

 @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        currentPosition = position;
        currentPositionOffset = positionOffset;

        scrollToChild(position, (int) (positionOffset *  
 tabsContainer.getChildAt(position).getWidth()));

        invalidate();

        if (delegatePageListener != null) {
            delegatePageListener.onPageScrolled(position, 
 positionOffset, positionOffsetPixels);
        }
    }

当我使用旧版本的support-v4.jar它工作正常,但当我使用它的最新版本时,这个方法:

scrollToChild(position, (int) (positionOffset *  
tabsContainer.getChildAt(position).getWidth()));

返回此错误:

 06-19 11:56:23.764: E/AndroidRuntime(1024): java.lang.NullPointerException
 06-19 11:56:23.764: E/AndroidRuntime(1024):    at         
 com.astuetz.PagerSlidingTabStrip$PageListener.onPageScrolled
(PagerSlidingTabStrip.java:361)
 06-19 11:56:23.764: E/AndroidRuntime(1024):    at 
 android.support.v4.view.ViewPager.onPageScrolled(ViewPager.java:1712)
 06-19 11:56:23.764: E/AndroidRuntime(1024):    at 
 android.support.v4.view.ViewPager.pageScrolled(ViewPager.java:1633)
 06-19 11:56:23.764: E/AndroidRuntime(1024):    at 
 android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:581)
 06-19 11:56:23.764: E/AndroidRuntime(1024):    at  
 android.support.v4.view.ViewPager.onLayout(ViewPager.java:1600)
你明白出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

这可能是帮助。

https://github.com/astuetz/PagerSlidingTabStrip/issues/69

我刚刚提出同样的问题,经过一些测试后,我确认原因是PagerSlidingTabStrip内没有要显示的项目。

如果您确定自己拥有应显示的数据,可以在PagerSlidingTabStrip上,或许您忘记致电PagerSlidingTabStrip.notifyDataSetChanged();

希望这能帮到你!