我的应用程序具有一个活动和三种类型的片段。
MainActivity
具有ToolBar
,并且片段在此添加自己的动作ToolBar
-因此片段没有自己的动作ToolBar
。
formFragmet
与EditText
,CheckBox
,Spinner
,日期和时间的字段。ToolBar
当用户更改其中的某些字段时,它具有中的操作来更新这些字段。ListFragment
,并且具有记录列表-它不需要在中具有操作ToolBar
。ViewPager
)中的任何其他组合。TabbedFragment
不需要在中执行任何操作ToolBar
,但是如果FormFragment
当前选项卡中有(A),它将显示该操作FormFragment
,因此可以,并且可以正常运行。问题是这样的:
当用户从ListFragment
(B)选择记录时,下一个屏幕是FormFragment
(A),并且用户更改字段中的值。之后,用户从ToolBar
(更新)中选择一个动作,然后更新表单。
成功更新后,用户将返回(触摸ToolBar
弹出的“活动”中添加的箭头BackStack
,并显示ListFragment
)到ListFragment
(B),然后用户在列表中选择另一个项目。另一个(新的)FormFragment
将在字段中显示不同的数据。
用户以这种形式更改某些内容,然后按工具栏中的更新操作。
更改未保存!原因是ToolBar
此(新)中的动作formFragment
仍附加到PREVIOUS FormFragment
???中。
有人遇到过这个问题吗???
有某种方法可以将动作与片段分离吗?
我猜想Android在创建时会将工具栏中的新操作设置为新片段。但是显然它没有这样做。
请有人帮忙。
PS I如果需要,将提供部分代码。
提前致谢。
该问题的答案是:在TabbedPagerAdapter中使用getChildFragmentManager()。
我使用的是Activity的getSupportFragmentManager(),当您使用NESTED片段(例如在TabbedFragment中具有ViewPager和ViewPager内有(子)Fragments)时,这是错误的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句