使用getSupport Fragment时如何隐藏选项菜单
How to hide the option menu when using getSupportFragment
大家早上好,
我试图在某些 fragment.For 示例中隐藏选项菜单,我只想在促销页面上显示选项菜单
我在promotion.java
中添加代码
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
inflater.inflate(R.menu.toolbar_menu, menu);
super.onCreateOptionsMenu(menu,inflater);
}
然后我想隐藏在其他片段上。
当我启动应用程序时,第一个片段就像
但是当我点击促销页面并点击返回菜单页面时,操作栏将是这样的
我正在使用 getSupportFragment 调用菜单项,这个问题只发生在使用 getSupportFragment 调用的片段上。
case R.id.menu:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MenuFragment()).addToBackStack(null).commit();
在 onCreate 片段中添加 setHasOptionsMenu(true)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
然后
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem item=menu.findItem(R.id.action_search);//your id instead of action_search
item.setVisible(false);
}
如果您想从 Fragment
控制选项菜单,您必须在 Fragment
的 onCreate()
中调用 setHasOptionsMenu(true)
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
从onCreateOptionsMenu()
清除menu
:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
}
或者, 您可以通过覆盖 onPrepareOptionsMenu
:
show/hide
特定菜单 item
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem item = menu.findItem(R.id.your_menu_item);
item.setVisible(false);
}
大家早上好,
我试图在某些 fragment.For 示例中隐藏选项菜单,我只想在促销页面上显示选项菜单
我在promotion.java
中添加代码public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
inflater.inflate(R.menu.toolbar_menu, menu);
super.onCreateOptionsMenu(menu,inflater);
}
然后我想隐藏在其他片段上。
当我启动应用程序时,第一个片段就像
但是当我点击促销页面并点击返回菜单页面时,操作栏将是这样的
我正在使用 getSupportFragment 调用菜单项,这个问题只发生在使用 getSupportFragment 调用的片段上。
case R.id.menu:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MenuFragment()).addToBackStack(null).commit();
在 onCreate 片段中添加 setHasOptionsMenu(true)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
然后
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem item=menu.findItem(R.id.action_search);//your id instead of action_search
item.setVisible(false);
}
如果您想从 Fragment
控制选项菜单,您必须在 Fragment
的 onCreate()
中调用 setHasOptionsMenu(true)
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
从onCreateOptionsMenu()
清除menu
:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
}
或者, 您可以通过覆盖 onPrepareOptionsMenu
:
show/hide
特定菜单 item
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem item = menu.findItem(R.id.your_menu_item);
item.setVisible(false);
}