Android - 在步骤之间使用动画实现向导的正确方法是什么

Shl*_*rtz 6 animation android view wizard android-activity

我正在构建和Android应用程序,需要通过像向导一样的步骤.

目前的结构:

目前我正在为每个步骤使用一个带有单独views.xml的活动,然后我setContentView(activeStep)用来显示活动步骤.

尝试在两个步骤之间制作动画时遇到了一些困难.我使用了以下代码:

LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(activeStep, null, false);
view.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.slide_in));
setContentView(view);
Run Code Online (Sandbox Code Playgroud)

结果:第一个视图消失了,新的视图已经动画化,而不是平滑过渡.

我的目标是为两个视图设置动画,一个在另一个视图中滑出.

问题:是否可以使用我当前的结构(提醒:一个活动,多个视图)或者我应该将每个步骤视为单独的活动?

Shl*_*rtz 3

我想还有一种用动画实现步骤进度的方法,我是这样做的:

private static ViewAnimator viewAnimator;

 public void onCreate(Bundle savedInstanceState) {
        viewAnimator = new ViewAnimator(this);
        View step1 = View.inflate(activity, R.layout.step_1, null);
        View step2 = View.inflate(activity, R.layout.step_2, null);
        View step3 = View.inflate(activity, R.layout.step_3, null);
        viewAnimator.addView(step1);
        viewAnimator.addView(step2);
        viewAnimator.addView(step3);
        viewAnimator.setInAnimation(activity, R.anim.slide_in);
        viewAnimator.setOutAnimation(activity, R.anim.slide_out);
        setContentView(viewAnimator);
    }
Run Code Online (Sandbox Code Playgroud)

然后单击我调用的按钮,viewAnimator.showNext()ViewSwitcherviewAnimator.showPrevious() 不适合我的目的,因为它一次只能容纳 2 个视图