有什麼辦法讓支持包ViewPager以較短的拖動捕捉到下一頁?默認行爲似乎是,即使我拖動幾乎75%,當我放開時,頁面仍會回到上一頁。我希望縮短捕捉閾值,並使ViewPager捕捉到下一頁。使ViewPager以較短的阻力捕捉
請注意,這適用於拖動手勢。一個扔手勢已經需要更短的手勢。
有什麼辦法讓支持包ViewPager以較短的拖動捕捉到下一頁?默認行爲似乎是,即使我拖動幾乎75%,當我放開時,頁面仍會回到上一頁。我希望縮短捕捉閾值,並使ViewPager捕捉到下一頁。使ViewPager以較短的阻力捕捉
請注意,這適用於拖動手勢。一個扔手勢已經需要更短的手勢。
你可以做到這一點的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;
}
}
看起來這些值是在私有方法中硬編碼的,所以沒有簡單的方法來覆蓋它們。
正確的,但值AREN」 t 0.4/0.6f(因爲它們是截斷器)。我*認爲*它可以在兩個方向上達到ViewPager寬度的60%。 一次投擲只需要25次傾斜,速度爲400次/秒。 –
@ChrisBanes當然你是對的,我只是很快就看到它 - 謝謝! – astuetz
像魅力一樣工作。謝謝! – Juhani
好主意,雖然我覺得有點奇怪 – astuetz