gpt4 book ai didi

android - 使用getSupport Fragment时如何隐藏选项菜单

转载 作者:搜寻专家 更新时间:2023-11-01 07:46:23 24 4
gpt4 key购买 nike

大家早上好

我试图在某些 fragment 上隐藏选项菜单。例如,我只想在促销页面上显示选项菜单

enter image description here

我在promotion.java中添加代码

public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
inflater.inflate(R.menu.toolbar_menu, menu);

super.onCreateOptionsMenu(menu,inflater);
}

然后我想隐藏在其他 fragment 上。

当我启动应用程序时,第一个 fragment 类似于 enter image description here

但是当我点击促销页面并点击返回菜单页面时,操作栏将是这样的

enter image description here

我正在使用 getSupportFragment 调用菜单项,这个问题只发生在使用 getSupportFragment 调用的 fragment 上。

case R.id.menu:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MenuFragment()).addToBackStack(null).commit();

最佳答案

如果你想从 Fragment 控制选项菜单,你必须在 onCreate() 中调用 setHasOptionsMenu(true) fragment :

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}

onCreateOptionsMenu()清除菜单:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
}

或者,您可以通过覆盖 onPrepareOptionsMenu显示/隐藏特定菜单 item:

@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);

MenuItem item = menu.findItem(R.id.your_menu_item);
item.setVisible(false);
}

关于android - 使用getSupport Fragment时如何隐藏选项菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com