サポートパッケージViewPagerをドラッグして次のページにスナップする方法はありますか?デフォルトの振る舞いは、たとえドラッグしても75%近くドラッグしても、前のページに戻ります。スナップしきい値を短くして、ViewPagerを次のページにスナップするようにしたいと思います。短いドラッグでViewPagerスナップを作成する
これは、ドラッグジェスチャに適用されることに注意してください。フリングのジェスチャーには、すでにかなり短いジェスチャーが必要です。
サポートパッケージViewPagerをドラッグして次のページにスナップする方法はありますか?デフォルトの振る舞いは、たとえドラッグしても75%近くドラッグしても、前のページに戻ります。スナップしきい値を短くして、ViewPagerを次のページにスナップするようにしたいと思います。短いドラッグでViewPagerスナップを作成する
これは、ドラッグジェスチャに適用されることに注意してください。フリングのジェスチャーには、すでにかなり短いジェスチャーが必要です。
:
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;
}
}
これらの値がプライベートメソッドでハードコードされているように見えるため、単純な方法でそれらをオーバーライドすることはできません。あなたがいる限り、あなたがターゲットゾーンを増やしたいとViewPagerの内部についてはあまり気にせず、このアドホックを行うことができます
正しいが、値は、」上がりませんt 0.4/0.6f(これはトランケータなので)。私は、双方向のViewPagerの幅の60%になると思う。 フリンジは、400ディップ/秒の速度で、25ディップにする必要があります。 –
@ChrisBanesもちろん、あなたは正しいです、私はそれをちょうど非常に見ていた - ありがとう! – astuetz
チャームのように働いた。ありがとうございました! – Juhani
良いアイデア、私はそれが少し奇妙に感じると思う – astuetz