2016-05-30 75 views
1

我的应用程序有一个活动和三种类型的片段。如何从片段中断开工具栏操作Android

MainActivityToolBar,片段将自己的操作添加到此ToolBar - 因此片段没有自己的ToolBar

  1. (A)片段是formFragmetEditTextCheckBoxSpinner,日期 和时间字段。它在ToolBar中有更新 这些字段,当用户更改其中的某些内容时将采取相应措施。
  2. (B)片段是ListFragment,它具有记录列表 - 它不需要在ToolBar中执行操作。 (C)片段是可包含(A) 片段和(B)片段或标签 (ViewPager)中的任何其他组合的标签片段。 TabbedFragment并不需要在 ToolBar任何行动,但如果FormFragment(A)是在当前标签页,它 显示该FormFragment的行动,所以没关系,它 工作正常。

问题是这样的:

当用户选择从ListFragment(B)下一个画面的记录被FormFragment(A),并给用户的字段改变值。之后,用户从ToolBar(更新)中选择一个操作,并更新表单。

成功更新后,用户然后返回(在接触由它弹出BackStack活动添加ToolBar的箭头,示出了ListFragment)至ListFragment(B)和用户在列表中选择另一个项目。另一个(新)FormFragment用字段中的不同数据打开。

用户改变这种形式的东西,并按下工具栏中的更新动作。

更改不保存!原因在于此(新)formFragment中的ToolBar的动作仍然附加到先前的FormFragment ???

有没有人有这个问题?

有没有办法从片段中分离动作?

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

如果有人可以帮忙请给我。

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

在此先感谢。

回答

0

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

我正在使用Activity的getSupportFragmentManager(),当你使用NestedED片段时,如TabbedFragment中有一个ViewPager,而ViewPager里面有(子)碎片。