Компонент навигации Android: различие NavigateUp и Navigate (parentId) - PullRequest
0 голосов
/ 18 июня 2019

Я недавно преобразовал свой проект из нескольких действий в одно действие с компонентом навигации.

Однако у меня возникла очень странная проблема.

У меня есть фрагмент, где я программно раздуваю множество копий XML-макета в ответ на пользовательские команды. Эти представления содержат текст редактирования. У меня есть модель представления, в которой я сохраняю все представления, программно добавленные пользователем, чтобы воссоздать все.

Это работает нормально, даже если все редактируемые тексты в макете будут иметь одинаковый идентификатор R.id.my_edit_text, я вызываю findViewById на правильном родительском макете, чтобы избежать неясностей.

Моя проблема заключается в следующем:

  • При переходе к этому представлению макет отображается правильно.
  • Если из этого представления я перехожу куда-то еще, а затем перемещаю NavigateUp, то компоновка больше не отображается правильно: все поля для редактирования текста имеют то же значение, что и последнее.

Некоторые заметки:

  • Если вместо вызова NavigateUp я снова вызываю Navigate с идентификатором предыдущего представления, макет отображается правильно.
  • Я надуваю представления в функции OnActivityCreated, где также создается модель представления.
  • Я добавил несколько журналов, используя getText в OnActivityCreated: сначала я раздуваю все макеты, и у них правильно не установлено значение. Затем я устанавливаю значения, и они корректно обновляются

У вас есть идеи, почему это могло произойти? Какая разница в том, что происходит между двумя функциями навигации? Спасибо

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