Я хочу получить текущую позицию видимого вида моего PagerAdapter
Я не видел очевидную функцию типа getPosition()
, и я хочу ее.
Я хочу добавить объект в его arraylist в этом положении, но сначала мне нужно знать его
Я хочу получить текущую позицию видимого вида моего PagerAdapter
Я не видел очевидную функцию типа getPosition()
, и я хочу ее.
Я хочу добавить объект в его arraylist в этом положении, но сначала мне нужно знать его
Вы бы использовали:
int position = mViewPager.getCurrentItem()
У меня была эта проблема и я не мог получить 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`, является позицией следующего элемента, инициализированного. Это не имеет ничего общего с отображаемым элементом.
если я напишу после этой строки
Log.i("pager",myPager.getCurrentItem()+"");
он покажет в logcat текущую страницу элемента во время запуска oncreate, которая всегда 0
noteice Я использовал объект для viewpager сам, а не адаптер.