如何设置点,之后ViewPager滑动到另一个视图?

时间:2013-08-16 08:26:03

标签: android android-viewpager

如果可以看到超过50%的View B的关注者, 在发布时,ViewPager会设置为View B的动画,而不是goind回View A

如何将此切换点从50%更改为x%?

2 个答案:

答案 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;
}

}