web-dev-qa-db-fra.com

Obtenir la position actuelle d'un ViewPager

Je sais qu'avec le widget Gallery, j'ai pu utiliser getSelectedItemPosition (); pour récupérer la position actuelle, cependant il ne semble pas que ViewPager ait cela.

Je sais que je peux configurer un auditeur et récupérer la position lorsque la page est commutée. Mais je veux la position de vue actuelle.

81
Adam

Créez un écouteur et définissez-le sur votre viewpager:

/**
 * Get the current view position from the ViewPager by
 * extending SimpleOnPageChangeListener class and adding your method
 */
public class DetailOnPageChangeListener extends ViewPager.SimpleOnPageChangeListener {

    private int currentPage;

    @Override
    public void onPageSelected(int position) {
        currentPage = position;
    }

    public final int getCurrentPage() {
        return currentPage;
    }
}
91
androidu

Vous pouvez utiliser:

mViewPager.getCurrentItem()
184
Terry

Mise à jour 2019

Vous pouvez maintenant définir addOnPageChangeListener sur View Pager pour observer le changement de position de la page.

Puisque vous vouliez configurer un auditeur et récupérer la position lors du changement de page

mViewPager.addOnPageChangeListener(object : OnPageChangeListener {
            override fun onPageScrollStateChanged(state: Int) {}
            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}

            override fun onPageSelected(position: Int) {
                pagePosition.setText("" + position + "/" + galleryAdapter!!.count)
            }
        })
2
Hitesh Sahu