2015-09-13 4 views
0

Во фрагменте я использую ViewPager и устанавливаю текущий элемент.ViewPager.OnPageChangeListener, дающий неправильное положение

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

Теперь метод OnPageChangeListener в «onPageSelected (целое положение)» не дает значение positon 4 или 6, но давая 1. Я хочу, если текущая позиция устанавливается на 10, то параметр позиции дают 11.

ответ

1

Вы пишете правильный код, но не в правильном порядке.

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

вы должны сначала установить adapter то сказать, какое положение для загрузки в ViewPager.

1

Вы можете позвонить по телефону setCurrentItem() только после звонка setAdapter()и подождите, пока просмотрщик завершит загрузку. Кажется, нет правильного способа сделать это. Хак должен подождать несколько миллисекунд перед вызовом setCurrentItem() -

Ссылка: Android ViewPager setCurrentItem not working after onResume

Альтернативой является вызов setCurrentItem() в OnLayoutChangeListener -

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

Смежные вопросы