Подтвердить что ты не робот

Сделать привязку ViewPager с более коротким перетаскиванием

Есть ли способ сделать пакет ViewPager для поддержки на следующей странице с более коротким перетаскиванием? Поведение по умолчанию, по-видимому, состоит в том, что даже если я перетаскиваю почти 75%, страница отбрасывается на предыдущую страницу, когда я отпускаю. Я хотел бы сделать порог привязки короче и сделать привязку ViewPager к следующей странице.

Обратите внимание, что это применимо к жестом перетаскивания. Жесткий жест требует гораздо более короткого жеста.

4b9b3361

Ответ 1

Вы можете сделать это ad-hoc, не беспокоясь о внутренних компонентах 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;
    }
}