我需要设置一个符合以下要求的ViewPager
:
- 在任何给定时间,屏幕上必须显示3个页面
- 中心页面未缩放,后面页面占中心页面的60%;
- 中心页面,必须与后面的页面重叠。
从我在其他问题中看到的,我试图这样做:
viewPager.setClipToPadding(false);
int padding = (metrics.widthPixels - centerViewSize) / 2;
viewPager.setPadding(padding, 0, padding, 0);
viewPager.setPageMargin(-(padding / 2));
viewPager.setCurrentItem(10);
viewPager.setOffscreenPageLimit(3);
这样做让我来到这里:
这就是我所期待的。只需要将当前所选项目带到前面。
然后我尝试使用以下方式缩放视图:
public static final float SCALED_SIZE = 0.6f;
viewPager.setPageTransformer(false, new PageTransformer() {
@Override
public void transformPage(final View page, final float position) {
if (position < -1) {
page.setScaleX(SCALED_SIZE);
page.setScaleY(SCALED_SIZE);
} else if (position <= 1) {
float scaleFactor = Math.max(SCALED_SIZE, 1 - Math.abs(position));
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
} else {
page.setScaleX(SCALED_SIZE);
page.setScaleY(SCALED_SIZE);
}
}});
但这给了我一些问题。