Динамическое изменение дочерних представлений в настраиваемом представлении, не удается вернуться к предыдущему дочернему представлению
В моем собственном представлении я использую приведенный ниже простой метод для динамического изменения дочерних представлений:
private void changeChildView(final View oldView, final View newView) {
final int viewIndex = indexOfChild(oldView);
removeViewAt(viewIndex);
addView(newView, viewIndex);
}
В начале childView1 помещается в ViewGroup. Как только пользователь запускает жест на childView1, я делаю следующие шаги:
Я храню childView1 в глобальной переменной в моем собственном представлении:
mTempView = childView1
тогда я раздуваю childview2
changeChildView(childView1, childView2)
Отлично работает. Но если пользователь нажимает кнопку "Назад", мне нужно вернуться к childView1, который должен быть сохранен в глобальной переменной на этом этапе. Я возвращаюсь:
changeChildView(childView2, mTempView)
Но возврат не работает. Я проверил, что mTempView содержит представление, но оно никогда не появляется. Как ни странно, он появляется, как только я поворачиваюсь, что означает, что представление было успешно добавлено обратно в процессе возврата.