首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未在片段中调用onPrepareOptionsMenu

未在片段中调用onPrepareOptionsMenu
EN

Stack Overflow用户
提问于 2013-03-27 18:45:03
回答 5查看 16.8K关注 0票数 24
代码语言:javascript
复制
    @Override
    public void onCreateOptionsMenu(Menu menu,MenuInflater inflater){
        Log.d("Does", "get called");
        inflater.inflate(R.menu.menuItem, menu);
        super.onCreateOptionsMenu(menu,inflater);
    }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        getActivity().invalidateOptionsMenu();
        MenuItem filter = menu.findItem(R.id.section);

        filter.setVisible(false);

    }

我试图以片段的形式加载我的菜单,但它被讨厌了,但是onPrepareOptionsMenu根本没有被调用,我需要在其中隐藏一些菜单项。

更新:

代码语言:javascript
复制
    @Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setHasOptionsMenu(true);
}

我在我的onCreate()方法中调用setHasOptionsMenu(true)

EN

回答 5

Stack Overflow用户

发布于 2013-08-10 13:31:25

在Android3.0和更高版本上,当菜单项显示在操作栏中时,选项菜单被认为总是打开的。当事件发生并且您想要执行菜单更新时,必须调用invalidateOptionsMenu()来请求系统调用onPrepareOptionsMenu()。

http://developer.android.com/guide/topics/ui/menus.html

要更改特定项,请使用:menu.findItem(R.id.your_item_id)

票数 22
EN

Stack Overflow用户

发布于 2016-08-22 15:13:51

你需要做两件事。步骤1:在片段OnCreateView中添加setHasOptionsMenu(true);

代码语言:javascript
复制
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    setHasOptionsMenu(true);
    return inflater.inflate(R.layout.fragment_user_settings, container, false);
}

步骤2:您需要在OnViewCreated的片段中添加getActivity().invalidateOptionsMenu();。或者在更改片段时在mainActivity中。

票数 15
EN

Stack Overflow用户

发布于 2015-06-25 16:41:43

可能太晚了,但我也遇到了同样的问题,解决方案也很简单。只需从片段中调用getActivity().invalidateOptionsMenu()即可。这将调用Hope,在这里你可以像这样控制你的项目的可见性: menu.findItem(R.id.youritem).setVisible(true/false);onPrepareOptionsMenu这是有帮助的!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15656953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档