Итак, первое, что вам нужно сделать, это убедиться, что вы сохраняете сам фрагмент.И не помещайте новый экземпляр каждый раз, когда ваша деятельность воссоздается.
Вы можете установить это с помощью простой проверки в вашем методе onCreate()
.Вы можете либо проверить, является ли параметр savedInstance
Bundle
для onCreate()
равным null
, в этом случае только вам нужно заменить свой фрагмент ИЛИ проверить, уже добавлен ли ваш фрагмент к вашему FragmentManager
.
if (savedInstanceState == null) {
// This is a brand new activity, and not a re-creation due to config change
getSupportFragmentManager().beginTransaction().replace(id, yourFragmentInstnace, stringTag);
}
ИЛИ
if (getSupportFragmentManager().findFragmentByTag(fragmentTag) == null) {
// This is a brand new activity, and not a re-creation due to config change
getSupportFragmentManager().beginTransaction().replace(id, yourFragmentInstnace, fragmentTag);
}
И вам также нужно вызвать setRetainInstance(true)
в вашем фрагменте onCreate()
или что-то в этом роде.
Это сохранит тот же экземпляр вашего фрагмента во времяизменение конфигурации.
Это должно автоматически позволить вашему AdapterViewFlipper
поддерживать свое состояние пользовательского интерфейса, которое является текущим элементом, который он показывает.
Вы можете найти хороший пример здесь