繁体   English   中英

Android-在片段之间切换; 菜单项问题

[英]Android - Switching between fragments; Menu Item problems

我的应用程序使用片段,操作栏和导航抽屉。 当我在片段之间切换时,菜单项将损坏并且不再起作用。 我尝试了各种方法来解决问题,但无济于事。

在我的片段onCreate我有setHasOptionsMenu(true);

这是我的onCreateOptionsMenu

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    Log.d("Log", "Inflating Menu");
    menu.clear();
    inflater.inflate(R.menu.blank, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

这是我简单的onOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.mySearch:
            Log.d("Log", "Implementing Search Method");
            search();
            return true;

        case R.id.action_settings:
            //do something
            return true;
    }
    return super.onOptionsItemSelected(item);
}

在每个片段的菜单中,我使用menu.Clear(); 以防止在片段之间切换时堆积菜单项。 第一次选择片段时,菜单运行选定的功能就很好,但是在切换到另一个片段并再次返回菜单项之后,单击菜单项不会执行任何操作。

问题是您清除菜单并再次执行充气菜单。

删除线

     inflater.inflate(R.menu.blank, menu);

相反,您只需要清除Fragment的onCreateOptionsMenu()中的菜单,这样就不会为该特定片段显示菜单,而为其他片段显示菜单。

另外,您只需要在所有片段共有的Activity onCreateOptionsMenu膨胀菜单

也可以在这里查看我的答案。 动作按钮显示在所有片段中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM