サポート パッケージ ViewPager を短いドラッグで次のページにスナップさせる方法はありますか? デフォルトの動作では、ほぼ 75% ドラッグしても、指を離すとページは前のページに戻ります。スナップしきい値を短くして、代わりに ViewPager を次のページにスナップさせたいと思います。
これはドラッグ ジェスチャに適用されることに注意してください。フリング ジェスチャには、すでにはるかに短いジェスチャが必要です。
サポート パッケージ ViewPager を短いドラッグで次のページにスナップさせる方法はありますか? デフォルトの動作では、ほぼ 75% ドラッグしても、指を離すとページは前のページに戻ります。スナップしきい値を短くして、代わりに ViewPager を次のページにスナップさせたいと思います。
これはドラッグ ジェスチャに適用されることに注意してください。フリング ジェスチャには、すでにはるかに短いジェスチャが必要です。
You can do this ad-hoc, without worrying too much about the internals of ViewPager as long as you want to increase the target zone:
private class MyPageChangeListener implements OnPageChangeListener {
private float mLastPositionOffset = 0f;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if(positionOffset < mLastPositionOffset && positionOffset < 0.9) {
mViewPager.setCurrentItem(position);
} else if(positionOffset > mLastPositionOffset && positionOffset > 0.1) {
mViewPager.setCurrentItem(position+1);
}
mLastPositionOffset = positionOffset;
}
}
これらの値はプライベート メソッドでハードコードされているように見えるため、それらをオーバーライドする簡単な方法はありません。