如果可以看到超过50%的View B的关注者,
在发布时,ViewPager会设置为View B
的动画,而不是goind回View A
。
如何将此切换点从50%更改为x%?
答案 0 :(得分:0)
您可以通过覆盖onScrollChanged()函数来执行此操作,这是一个示例:
@Override
public void onScrollChanged(ViewPager vp, int x, int y, int oldx, int oldy) {
// We take the last son in the ViewPager
View view = (View) vp.getChildAt(vp.getChildCount() - 1);
if (diff < view.getBottom()/2) {
// do the animation
}
}
让我知道这是否有效(为了让我知道我是否应该从这里删除答案)。
由于
答案 1 :(得分:0)
您可以构建自己的自定义ViewPager,并使用自己的浮点值覆盖正确的方法。类似的东西:
public CustomViewpager extends ViewPager {
@Override
private int determineTargetPage(int currentPage, float pageOffset, int velocity, int deltaX) {
int targetPage;
if (Math.abs(deltaX) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) {
targetPage = velocity > 0 ? currentPage : currentPage + 1;
} else {
//change your values here for whatever you need for your purposes
final float truncator = currentPage >= mCurItem ? 0.4f : 0.6f;
targetPage = (int) (currentPage + pageOffset + truncator);
}
if (mItems.size() > 0) {
final ItemInfo firstItem = mItems.get(0);
final ItemInfo lastItem = mItems.get(mItems.size() - 1);
// Only let the user target pages we have items for
targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position));
}
return targetPage;
}
}