Android - как правильно реализовать мастер с анимацией между шагами - PullRequest
6 голосов
/ 09 января 2012

Я создаю приложение для 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);

Результат: первый вид исчез, а новый анимированный, а не плавный переход.

Моя цель состоит в том, чтобы анимировать оба вида, один выдвигает другой.

Вопрос: Возможно ли сделать это с моей текущей структурой (напоминание: одно действие, много просмотров) или я должен рассматривать каждый шаг как отдельное действие?

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Я полагаю, что есть еще один способ реализации пошагового продвижения с помощью анимации, вот как я это сделал:

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);
    }

затем нажмите кнопку, которую я вызываю viewAnimator.showNext() и viewAnimator.showPrevious() ViewSwitcher не былохорошо для моей цели, потому что он может содержать только 2 просмотра одновременно

0 голосов
/ 09 января 2012

Вероятно, было бы лучше использовать одну Activity и несколько различных View структур, если каждый шаг в процессе связан.

Вы, вероятно, не должны использовать setContentView для изменения представлений с каждым шагом. Вместо этого, возможно hide или unhide каждый элемент, или уберите его с экрана.

...