Как сохранить состояние фрагмента при навигации с помощью навигационного компонентаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить состояние фрагмента при навигации с помощью навигационного компонента

Сообщение Anonymous »

Я пытаюсь создать одно приложение для занятий, используя компоненты архитектуры Android. У меня есть фрагмент A, который имеет несколько текстовых полей. Когда пользователь нажимает кнопку, я перехожу к фрагменту B, куда он загружает и редактирует некоторые изображения после того, как это приложение возвращается обратно к A, используя такой код:

Код: Выделить всё

findNavController().navigate(R.id.action_from_B_to_A, dataBundle)
При переходе назад B передает некоторые данные A с помощью dataBundle. Проблема заключается в том, что все текстовые поля сбрасываются, поскольку фрагмент A фактически воссоздается с нуля. Я где-то читал, что разработчик из Google предлагает просто сохранять представление в var вместо того, чтобы каждый раз его раздувать. Итак, попробовал сделать это:

Код: Выделить всё

private var savedViewInstance: View? = null

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return if (savedViewInstance != null) {
savedViewInstance
} else {
savedViewInstance =
inflater.inflate(R.layout.fragment_professional_details, container, false)
savedViewInstance
}
}
Но это не работает, все текстовые поля сбрасываются при переходе обратно к A. Что я делаю не так? Как правильно действовать в подобных случаях?

Подробнее здесь: https://stackoverflow.com/questions/596 ... -component
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»