我试图通过重写transformPage()方法在视图页上的页面滑动中做一些动画,这样当我从右向左滑动时,新页面(来自右侧的页面)应该在动画开始时出现在上一页下方,然后上一页应该滑动到新页面的左侧。当我从左向右滑动时,新页面应该直接滑过前一页并完全覆盖它。但我没能做到。我尝试了以下方法:-
if(position > 0 && position < 1)
{
int pageWidth = page.getWidth();
float translateValue = (-position * pageWidth);
if(translateValue < pageWidth)
{
translationX = translateValue;
}
else
{
translationX = 0;
}
}
else
{
alpha = 1;
scale = 1;
translationX = 0;
}
请提供一些建议。由于
这应该像你想的那样工作,你只需要把它放在你的PagerTransformer类中:
private static final float MIN_SCALE_DEPTH = 0.75f;
@Override
public void transformPage(View page, float position) {
final float alpha;
final float scale;
final float translationX;
if (position > 0 && position < 1) {
alpha = (1 - position);
scale = MIN_SCALE_DEPTH + (1 - MIN_SCALE_DEPTH) * (1 - Math.abs(position));
translationX = (page.getWidth() * -position);
} else {
alpha = 1;
scale = 1;
translationX = 0;
}
page.setAlpha(alpha);
page.setTranslationX(translationX);
page.setScaleX(scale);
page.setScaleY(scale);