Я пытаюсь создать одно приложение для занятий, используя компоненты архитектуры 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