У меня была эта проблема, и я не смог получить метод getCurrentItem()
.
В итоге я получил позицию от ViewPager
, а не от PageAdapter
.Метод onPageSelected(int currentPage)
получает текущую отображаемую страницу.
//custom PageAdapter implementation
mAdapter = new AwesomePagerAdapter();
//Our custom view pager that extends from ViewPager
mPager = (CustomViewPager) findViewById(R.id.preview_gallery);
mPager.setAdapter(mAdapter);
// get the item that we should be showing from the intent
mCurrentPage = extra.getInt("currentIndex");
// show the item the user picked
mPager.setCurrentItem(mCurrentPage);
// listen for page changes so we can track the current index
mPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int arg0) {
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
public void onPageSelected(int currentPage) {
//currentPage is the position that is currently displayed.
}
});
Выполнение этого в PageAdaper
не помогло мне, так как я хочу предварительно загрузить изображения, которые не видны.Позиция, которая передается instantiateItem(View collection, int position)
из PageAdapter`, является позицией следующего инициализированного элемента.Это не имеет ничего общего с отображаемым элементом.