2016-12-09 3 views

Antwort

-1

Sie können die fromPosition (dh die Position, von der aus der Viewpager gescrollt wird, in onPageScrolled Callback, der Positionswert in dieser Callback-Methode ist nichts anderes als die Position, aus der die Rolle initiiert wird, also wenn onPageSelected aufgerufen wird die Position von onPageScrolled gespeichert wird die vorherige Position, aus der sein die Scroll gestartet wurde.

ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() { 
    private int fromPosition = 0; 

    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     fromPosition = position; 
    } 

    @Override 
    public void onPageSelected(int position) { 
     Log.v("onPageSelected", "scrolled from position " + fromPosition) 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
} 
+0

dies funktioniert, wenn direkt im viewpager nach links scrollen, wenn Scrollen in der entgegengesetzten Richtung ist es nicht zB rechts nach links "0, 1, 2, 3, 4" dann links nach rechts "4, 3, 2, 1, 0" Wenn es "5, 4 sein sollte, 3, 2, 1' –

+0

@ DJ-DOO warum sollte es 5,4,3,2,1 sein? viewpager verwaltet eine 0-basierte Liste. – Bhargav

+0

weil an diesem Punkt sind Sie auf Seite 5, von 4 bis 5 gescrollt, so wenn Sie in die entgegengesetzte Richtung scrollen Sie scrollen von Seite 5. –

Verwandte Themen