如何断开工具栏操作与片段的连接 Android

How to disconnect toolbar action from fragment Android

我的应用程序有一种 activity 和三种类型的片段。

MainActivityToolBar,片段将自己的动作添加到这个 ToolBar- 所以片段没有自己的 ToolBar.

  1. (A) 片段为 formFragmet,日期为 EditTextCheckBoxSpinner 和时间字段。它在 ToolBar 中有更新的动作 当用户更改其中某些内容时的那些字段。
  2. (B) 片段是一个 ListFragment,它有记录列表 - 它不需要在 ToolBar.
  3. 中执行操作
  4. (C) 片段是一个选项卡式片段,它可以同时包含 (A) 片段和 (B) 片段,或选项卡中的任何其他组合 (ViewPager)。 TabbedFragment 中不需要任何操作 ToolBar,但是如果 FormFragment (A) 在当前选项卡中,它 显示 FormFragment 的操作,所以没关系,而且它 工作正常。

问题是这样的:

当用户从 ListFragment(B) 中选择一条记录时,下一个屏幕是 FormFragment(A),并且用户要更改字段中的值。之后,用户从 ToolBar(更新)中选择一个操作,并更新表单。

更新成功后,用户返回(触摸 Activity 添加的 ToolBar 中的箭头,弹出 BackStack,并显示 ListFragment)到 ListFragment(B) 并且用户选择列表中的另一个项目。另一个(新)FormFragment 在字段中打开了不同的数据。

用户更改了此表单中的内容,并按下了工具栏中的更新操作。

更改未保存!原因是这个(新)formFragmentToolBar 的动作仍然附加到 PREVIOUS FormFragment???

有人遇到过这个问题吗???

有没有办法以某种方式从片段中分离动作?

我猜测 Android 会在创建时将工具栏中的新操作设置为新片段。但显然它不是那样做的。

如果有人可以提供帮助,请。

P.S。 如果需要,我会提供部分代码。

提前致谢。

这个问题的答案是:使用TabbedPagerAdapter中的getChildFragmentManager()。

我使用的是 Activity 的 getSupportFragmentManager(),当您使用嵌套片段时,这是错误的,例如在具有 ViewPager 的 TabbedFragment 中,并且 ViewPager 内部有(子)片段。