Android导航组件:区别NavigateUp和Navigate(parentId)

时间:2019-06-18 17:10:25

标签: java android android-fragments navigation

我最近将项目从多个活动转换为带有导航组件的单个活动。

但是,我遇到了一个非常奇怪的问题。

我有一个片段,其中我根据用户命令以编程方式对布局xml的许多副本进行了充气。 这些视图包含编辑文本。 我有一个视图模型,其中存储了用户以编程方式添加的所有视图,以便重新创建所有内容。

即使布局中的所有编辑文本都具有相同的ID R.id.my_edit_text,这也很好,我在正确的父布局上调用findViewById,以避免产生歧义。

我的问题如下:

  • 导航到该视图时,布局正确呈现。
  • 如果从此视图中我走到其他地方,然后导航至NavigateUp,则布局不再正确显示:所有编辑文本字段的值都与上一个相同。

一些注意事项:

  • 如果我没有调用NavigateUp,而是再次调用具有上一个视图的ID的“导航”,则布局将正确呈现。
  • 我在OnActivityCreated函数中扩展视图,并在其中创建视图模型。
  • 我在OnActivityCreated中使用getText添加了一些日志:首先,我给所有布局充气,并且它们没有正确设置值。 然后设置值,它们会正确更新

您知道为什么会发生这种情况吗? 这两个导航功能之间有什么区别? 谢谢

0 个答案:

没有答案