如何在使用垂直 ViewPager 时只滑动一半 Fragment

How to slide only half Fragment while using vertical ViewPager

我在寻找 vertical viewpager 然后我找到了 this answer
它工作正常,但现在我只需要滑动片段的一半

我以前这样做过,使用 horizo​​ntal viewpager 和下面的解决方案

Override the getPageWidth method of PagerAdapter and make it return 0.5f;

但是因为我使用的是 vertical viewpager 而不是 horizo​​ntal viewpager,并且 FragmentPagerAdapter 没有任何覆盖方法 return 身高

有什么可行的解决方案吗?

只需将 VerticalPageTransformer class 替换为此来源

private class VerticalPageTransformer implements ViewPager.PageTransformer {

    @Override
    public void transformPage(View view, float position) {

        if (position < -1) {
            view.setAlpha(0);

        } else if (position <= 1) {
            view.setAlpha(1);
            view.setTranslationX(view.getWidth() * -position);
            float yPosition = position * (float)(view.getHeight() / 2.5);
            view.setTranslationY(yPosition);

        } else {
            view.setAlpha(0);
        }
    }
}

它完美运行 ;)