with viewpager studio sectionspageradapter practice pageradapter fragments example best and android arraylist pager android-viewpager

viewpager - Android PagerAdapter, obtener posición actual



slide android (4)

Quiero obtener la posición actual de la vista visible de mi PagerAdapter

No vi una función obvia como getPosition() y quiero una.

Quiero agregar un objeto a su lista de arrays en esa posición, pero necesito saberlo primero


Aquí hay una solución actualizada que usé yo mismo. Como setOnPageChangeListener ahora está en desuso, debes usar addOnPageChangeListener .

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int counterPosition; if (position == 0 || position <= currentInventory.size()){ counterPosition = position + 1; } else { counterPosition = position; } viewPagerHeader.setText("Prize " + counterPosition + " of " + currentInventory.size()); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } });

La implementación anterior muestra el índice correcto en mi TextView para que las posiciones 0 y el último elemento en la lista currentInventory.size() muestren correctamente. Espero que esto ayude a alguien a buscar una solución actualizada.


Tuve este problema y no pude obtener el getCurrentItem() method.

Terminé obteniendo el puesto de ViewPager y no del PageAdapter . El onPageSelected(int currentPage) está obteniendo la página que se muestra actualmente.

//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. } });

Hacerlo en PageAdaper no me funcionó ya que quiero cargar imágenes que no están visibles. La posición que se pasa al elemento instantiateItem(View collection, int position) de PageAdapter` es la posición del siguiente elemento inicializado. Esto no tiene nada que ver con el elemento que se muestra.


Utilizarías:

int position = mViewPager.getCurrentItem()