Правильный выбор реализации для переключения более 20 различных экранов

1

Я делаю викторину, в которой пользователь отвечает на каждый вопрос, прежде чем им разрешат перейти к следующему.

Характеристики моего приложения:

  • Каждый сеанс будет иметь около 10-30 экранов.
  • В общем, экраны гетерогены в макете структур, но они могут быть классифицируется на 5-6 типов.
  • Ожидаемое время, в течение которого пользователь взаимодействует с каждым экраном, составляет 10-30 секунд
  • Как только пользователь перейдет на следующий экран, предыдущий не нужен (он никогда не возвращается)
  • Я хочу иметь приятное скользящее переходная анимация при переходе от один экран к следующему

Реализации, которые я рассматриваю:

  • Запустите новый Activity для каждого экран в стиле "пересылки", т.е. начать следующий экран, тогда завершите текущий.
  • Загрузите все виды перед рукой и используйте ViewAnimator

Похоже, что ни одно из моих текущих решений не является хорошим. Можете ли вы помочь мне в решении, которое является хорошим с точки зрения потребления памяти, потребления батареи и отзывчивости?

Большое спасибо.

  • 0
    В чем проблема с ViewAnimator?
  • 0
    Как получить анимацию, когда, скажем, я снова использую тот же вид и меняю содержимое? Если я не буду использовать экраны повторно, потребление памяти может быть слишком большим. Возможно, мне придется держать более 20 экранов.
Теги:
performance
user-interface
implementation

1 ответ

0
Лучший ответ

ОК, это то, что я сделал. Оказалось, что я вручную установил анимацию

onCreate() {
    mAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_right);
    mViewPool = new View[] { /* A few views for re-using, each of different type */ };
}

proceed() {
    nextView = getView(type);
    mFrame.removeAllChilds();
    mFrame.addView(nextView);
    nextView.startAnimation(mAnimation);
}

getView(int type) {
    View view = mViewPool[type];
    // reset some subviews if neccessary
    return view;
}

Где mFrame - это какая-либо группа ViewGroup, которая, по вашему мнению, подходит, не обязательно ViewAnimator. Шахта бывает ScrollView.

Если вы видите какую-либо потенциальную проблему с этим подходом, сообщите мне. Большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню