2016-12-09 6 views

答えて

-1

onPageScrolledコールバックでは、fromPosition(つまり、ビューページがどこからスクロールされているかの位置)を取得できます。このコールバックメソッドの位置の値は、スクロールが開始される位置です。したがって、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からスクロールします。 –

関連する問題