如何在使用垂直 ViewPager 时只滑动一半 Fragment
How to slide only half Fragment while using vertical ViewPager
我在寻找 vertical viewpager 然后我找到了 this answer
它工作正常,但现在我只需要滑动片段的一半。
我以前这样做过,使用 horizontal viewpager 和下面的解决方案
Override the getPageWidth method of PagerAdapter and make it return 0.5f;
但是因为我使用的是 vertical viewpager 而不是 horizontal 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);
}
}
}
它完美运行 ;)
我在寻找 vertical viewpager 然后我找到了 this answer
它工作正常,但现在我只需要滑动片段的一半。
我以前这样做过,使用 horizontal viewpager 和下面的解决方案
Override the getPageWidth method of PagerAdapter and make it return 0.5f;
但是因为我使用的是 vertical viewpager 而不是 horizontal 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);
}
}
}
它完美运行 ;)