选项菜单以双倍形式出现
我在 Activity
中有一个 Fragment
。此活动包含OptionsMenu
。
我使用 FragmentTransaction
启动同一 Fragment 类的新实例,当我选择 OptionsMenu
时,它显示为双倍,因为它加载了两次。
我该如何管理片段之间的选项菜单
谢谢。
PS:对不起英语
I Have a Fragment
inside an Activity
. This Activity contains OptionsMenu
.
I use a FragmentTransaction
to launch a new instance of the same Fragment class, when I selected the OptionsMenu
, it appears in double because it load twice.
How can I do to manage OptionsMenu between the Fragments
Thanks.
PS : Sorry for the English
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
没有办法这样的办法。您可以处理 BackPressed 并将您自己的自定义菜单显示为新的片段网络。或者根据您的片段类和内容在 FragmentTransaction 不活动状态下管理您的选项菜单
There is no way such way. You can handle on BackPressed and show your own custom menu as a new fragmnet. Or manage your options menu inside of FragmentTransaction inactivity in dependent of your fragment class and content
我找到了一个解决方案,
我仅在活动中创建选项菜单。
我也得到了 Activity 上的 OptionsItemsSelected 。
当 onOptionsItemSelected() 发生时,我得到当前的 Fragment,如下所示:
我的所有 Fragment 都有相同的 id,但我总是得到顶部的 Fragment。
然后,我可以调用 :
来接收 Fragment,并且我的 UI 会正确更新。
我希望它有帮助。
I find a solution,
I create the OptionsMenu only in the Activity.
I get the OptionsItemsSelected on the Activity too.
When onOptionsItemSelected() occur, I get the current Fragment like this :
All my Fragment have the same id but I always get the Fragment on the top.
Then, I can call :
to the Fragment receive and my UI is correctly update.
I hope It helps.
尝试在
Fragment
扩展类中使用setHasOptionsMenu(boolean)
,如果设置为 true,
FragmentManager
应自动调用当前片段的onOptionsItemSelected
,如果它设置为 false,您可以在 Activity 的
onOptionsItemSelected
中手动调用这些回调。为我工作...:)
Try playing with
setHasOptionsMenu(boolean)
in yourFragment
extending classes,if that is set to true the
FragmentManager
should automatically call your current fragment'sonOptionsItemSelected
,it set to false you can manually call those callbacks yourself in your Activity's
onOptionsItemSelected
.Worked for me... :)