Динамическое изменение дочерних представлений в настраиваемом представлении, не удается вернуться к предыдущему дочернему представлению

В моем собственном представлении я использую приведенный ниже простой метод для динамического изменения дочерних представлений:

    private void changeChildView(final View oldView, final View newView) {
    final int viewIndex = indexOfChild(oldView);
    removeViewAt(viewIndex);
    addView(newView, viewIndex);
}

В начале childView1 помещается в ViewGroup. Как только пользователь запускает жест на childView1, я делаю следующие шаги:

  1. Я храню childView1 в глобальной переменной в моем собственном представлении: mTempView = childView1

  2. тогда я раздуваю childview2

  3. changeChildView(childView1, childView2)

Отлично работает. Но если пользователь нажимает кнопку "Назад", мне нужно вернуться к childView1, который должен быть сохранен в глобальной переменной на этом этапе. Я возвращаюсь:

changeChildView(childView2, mTempView)

Но возврат не работает. Я проверил, что mTempView содержит представление, но оно никогда не появляется. Как ни странно, он появляется, как только я поворачиваюсь, что означает, что представление было успешно добавлено обратно в процессе возврата.

0 ответов

Другие вопросы по тегам