1

在我的应用程序中,我通过在 fragmentTransaction 上调用 replace() 添加了一个片段。

这个片段,我们称之为 Fragment1,有一些菜单项通过在 onCreate() 中调用 onCreateOptionsMenu 和 setHasOptionsMenu(true) 添加到操作栏。然后我从这个片段中添加另一个片段,该片段是通过在 FragmentTransaction 上调用 add() 来添加的。

此片段 2 也有选项菜单,但删除了第一个片段的选项。然后,在 API 19 上,当我单击后退按钮时,它会将我带回到 Fragment1 并添加回此菜单的选项,因为托管这两个片段的活动调用 onCreateOptionsMenu,然后调用 onPrepare 选项菜单。在 Fragment1 中也调用了相同的方法。

当我在 API 16 上运行我的应用程序时,也会调用所有提到的方法,但要么根本不添加 Fragment1 的菜单项,要么将三点菜单组添加到错误的位置。我认为较低的 API 有一些不同,甚至可能是一个错误。我应该如何解决这个问题?有经验的人吗?

这是从第二个片段返回第一个片段时的样子,以及它在 API 16 上的样子:

这是错误的行为

这是它应该如何工作以及从第二个片段返回到第一个片段后在 API 19 上的样子:

在此处输入图像描述

我没有附上任何代码,因为我认为它与这个问题无关。在不同的平台上只有一些不同的行为,我只是不明白我应该怎么做。谢谢你的帮助。

4

0 回答 0