[英]ViewPager.OnPageChangeListener giving wrong position
In a fragment i'm using a ViewPager and setting a current item. 在一个片段中,我正在使用ViewPager并设置当前项。
mViewPager.setCurrentItem(5);
mViewPager.setAdapter(someAdapter);
mViewPager.addOnPageChangeListener(this);
Now, OnPageChangeListener's method "onPageSelected(int position)" is not giving positon value 4 or 6, but giving 1. I want if current position is set to 10 then position parameter give 11. 现在,OnPageChangeListener的方法“ onPageSelected(int position)”不是给出正数4或6,而是给出1。我想如果当前位置设置为10,则位置参数给出11。
Your are writing correct code but not in correct order. 您正在编写正确的代码,但顺序不正确。
mViewPager.setAdapter(someAdapter);
mViewPager.setCurrentItem(5);
mViewPager.addOnPageChangeListener(this);
you should first set the adapter
then tell which position to load in ViewPager
. 您应该首先设置adapter
然后确定要在ViewPager
加载哪个位置。
You could call setCurrentItem()
only after calling setAdapter()
and wait for the viewpager to complete its loading. 你可以调用setCurrentItem()
只调用后setAdapter()
并等待viewpager完成其加载。 There seems no proper way of doing this. 似乎没有适当的方法来执行此操作。 A hack is to wait some milliseconds before calling setCurrentItem()
- 黑客是要在调用setCurrentItem()
之前等待几毫秒-
Reference: Android ViewPager setCurrentItem not working after onResume 参考: Android ViewPager setCurrentItem在onResume之后不起作用
An alternative is to call setCurrentItem()
in an OnLayoutChangeListener
- 另一种方法是在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 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.