Мы пытаемся создать приложение для Android на основе ViewPager, которое во время выполнения получает инструкции по добавлению и удалению страниц. Почти как в браузере с вкладками, вы можете удалить текущую вкладку или удалить конкретную вкладку.
Следуя документации Google, мы используем FragmentStatePagerAdapter, который предназначен для использования в ситуациях, когда имеется большое количество страниц, работая больше как представление списка.
Но когда мы пытаемся: - удалить страницу, которой нет на экране - и создать новый объект-фрагмент из того же класса - и на той же позиции удаленной страницы, мы заметили, что платформа Android восстанавливает мертвую страницу и отображает ее. пользователю. Новый объект, который мы только что создали, просто не запускается «onCreate», «onCreateView» или «onActivityCreated».
Мы ищем способы исправить эту проблему, заставляющую платформу использовать наш новый объект фрагмента из того же класса. Есть идеи?
Мы выяснили, что если мы уничтожим текущую страницу, платформа действительно уничтожит страницу и создаст новый объект из того же класса. Вот небольшой пример, воспроизводящий проблему и это поведение.
Источник: http://dl.dropbox.com/u/8333012/SimpleAdapter/SimplePager.zip
Видео: http://www.youtube.com/watch?v=-oaXXwU8PSI&hd=1
В этом проекте, когда вы касаетесь TextView на первой странице, он был разработан для удаления второй страницы (зеленой) на новую синюю страницу. Вы увидите, что даже если сделать это с первой страницы, вторая страница останется зеленой. Но когда вы нажимаете кнопку «Назад» Android на второй странице (зеленая) и касаетесь TextView, вторая созданная страница будет правильного синего цвета.