我有一个 ViewPager,它的每个视图都是甲板上卡片的表示。每张卡片的边框上都有一个使用 ViewPager 边距的阴影:
cardsViewPager.setPageMargin(getResources().getDisplayMetrics().widthPixels / 20);
cardsViewPager.setPageMarginDrawable(R.drawable.shadow);
它按预期工作。
但是,如果我添加一个 PageTransformer 以便右侧的卡片将堆叠在左侧的卡片之上:
public class ScalePageTransformer implements PageTransformer {
private final ViewPager mViewPager;
public ScalePageTransformer(ViewPager viewPager) {
this.mViewPager = viewPager;
}
@Override
public void transformPage(View page, float position) {
if (position <= 0) {
int pageWidth = mViewPager.getWidth();
final float translateValue = position * -pageWidth;
if (translateValue > -pageWidth) {
page.setTranslationX(translateValue);
} else {
page.setTranslationX(0);
}
}
}
}
我这样做:
cardsViewPager.setPageTransformer(false, new ScalePageTransformer(cardsViewPager));
但是现在,边距没有出现。如果我在 PageTransformer 上有一个缩小效果,我可以看到当前卡片何时被缩小,可绘制的边距低于屏幕上的当前卡片。这是一张图片来描述正在发生的事情:
蓝卡在红卡上从右向左刷。由于红牌有比例变换,我们可以看到它后面的黑色可绘制边距。
有没有办法强制可抽取的保证金位于红牌之上?这不应该是默认行为吗?