2016-12-09 24 views

回答

-1

您可以獲取fromPosition(即從onPageScrolled回調中viewpager滾動的位置,此回調方法中的位置值只不過是啓動滾動的位置,因此調用onPageSelected時從onPageScrolled存儲位置將是從滾動開始之前的位置。

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

這個滾動就在viewpager到離開的時候,如果滾動工作在相反的方向上它不會例如從右到左'0,1,2,3,4'然後從左到右'4,3,2,1,0'當它應該是'5,4, 3,2,1' –

+0

@ DJ-DOO爲什麼它應該是5,4,3,2,1? viewpager維護一個基於0的列表。 – Bhargav

+0

,因爲那時你在第5頁,滾動從4到5,所以當你從第5頁滾動到相反的方向時滾動。 –