Фрагменты: просмотр состояния восстановления - PullRequest
0 голосов
/ 20 сентября 2019

Я знаком с восстановлением Activity состояния View, и он хорошо выполняет свою работу, как и обещал, но я столкнулся с ситуацией с фрагментами, когда даже виджеты, такие как TextView, не восстанавливают последнее установленное состояние просмотра.

Сценарий прост:

У меня есть, скажем, 2 фрагмента - F1 и F2 для действия A. Каждый фрагмент имеет набор стандартных виджетов - TextView, EditText, Imageview и т. д. Я выполняю транзакцию, чтобы заменить фрагмент F1 на F2 с измененным состоянием текста TextView:

getSupportFragmentManager().beginTransaction()
                .addToBackStack(null)
                .replace(R.id.fragment_container, f2Fragment)
                .commit();

// In the containing Activity(this is done before replacing f1 with f2):
getSupportFragmentManager().beginTransaction()
                .addToBackStack(null)
                .add(R.id.fragment_container, f1Fragment)
                .commit();

Затем я нахожусь на фрагменте F2 и решаю, скажем, нажать кнопку возврата.Теперь я вернулся в Формулу-1, но вот в чем дело - все TextView, которые изменили текст, вернулись к исходному, начальному тексту.Виджеты, видимость которых была изменена на INVISIBLE хотя бы один раз, а затем снова на VISIBLE, больше не видны.Точно так же, похоже, также сбрасывается изменение состояния включенной кнопки.

Я помню, как читал документы, и я думаю, что восстановление состояния просмотра является частью обещанного контракта.Ситуация, с которой я столкнулся, сняла все прелести использования Fragment s.

Что я делаю не так?

PS : я попытался предоставить "строка "для фрагмента Имя тега, а также строка в addToBackStack(), и это не помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...