【问题标题】:ViewPager.OnPageChangeListener giving wrong positionViewPager.OnPageChangeListener 给出错误的位置
【发布时间】:2015-12-09 17:54:02
【问题描述】:

在片段中,我使用 ViewPager 并设置当前项目。

mViewPager.setCurrentItem(5);
mViewPager.setAdapter(someAdapter);
mViewPager.addOnPageChangeListener(this);

现在,OnPageChangeListener 的方法“onPageSelected(int position)”不是给出位置值 4 或 6,而是给出 1。我想要如果当前位置设置为 10,那么位置参数给出 11。

【问题讨论】:

    标签: android user-interface android-viewpager


    【解决方案1】:

    您只能在调用setAdapter() 之后调用setCurrentItem() 等待viewpager 完成加载。似乎没有正确的方法来做到这一点。一个技巧是在调用 setCurrentItem() 之前等待几毫秒 -

    参考:Android ViewPager setCurrentItem not working after onResume

    另一种方法是在OnLayoutChangeListener 中调用setCurrentItem() -

    https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=75309

    【讨论】:

      【解决方案2】:

      您正在编写正确的代码,但顺序不正确。

       mViewPager.setAdapter(someAdapter);
       mViewPager.setCurrentItem(5);
       mViewPager.addOnPageChangeListener(this);
      

      你应该先设置adapter然后告诉ViewPager要加载的位置。

      【讨论】:

        猜你喜欢
        • 2013-08-22
        • 1970-01-01
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多