Я недавно преобразовал свой проект из нескольких действий в одно действие с компонентом навигации.
Однако у меня возникла очень странная проблема.
У меня есть фрагмент, где я программно раздуваю множество копий XML-макета в ответ на пользовательские команды.
Эти представления содержат текст редактирования.
У меня есть модель представления, в которой я сохраняю все представления, программно добавленные пользователем, чтобы воссоздать все.
Это работает нормально, даже если все редактируемые тексты в макете будут иметь одинаковый идентификатор R.id.my_edit_text
, я вызываю findViewById
на правильном родительском макете, чтобы избежать неясностей.
Моя проблема заключается в следующем:
- При переходе к этому представлению макет отображается правильно.
- Если из этого представления я перехожу куда-то еще, а затем перемещаю NavigateUp, то компоновка больше не отображается правильно: все поля для редактирования текста имеют то же значение, что и последнее.
Некоторые заметки:
- Если вместо вызова NavigateUp я снова вызываю Navigate с идентификатором предыдущего представления, макет отображается правильно.
- Я надуваю представления в функции OnActivityCreated, где также создается модель представления.
- Я добавил несколько журналов, используя
getText
в OnActivityCreated: сначала я раздуваю все макеты, и у них правильно не установлено значение.
Затем я устанавливаю значения, и они корректно обновляются
У вас есть идеи, почему это могло произойти?
Какая разница в том, что происходит между двумя функциями навигации?
Спасибо