如何从片段中隐藏工具栏中的 OptionMenu?
How do I hide the OptionMenu in a toolbar from a fragment?
我在HomeActivity
中膨胀选项菜单。但我需要选项菜单在某些 fragments
中显示,而在其他中隐藏。
我尝试在 onCreate()
片段方法中使用 setHasOptionsMenu(false);
行。
这是 HomeActivity
中的 optionmenu
按钮声明
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//initialize button
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);
return true;
}
//action when i press it
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// action with ID action_refresh was selected
case R.id.toolbar_acquista:
Toast.makeText(this, "Acquisto", Toast.LENGTH_SHORT)
.show();
break;
}
return true;
}
我试图在 fragment
选项菜单 clickable
中显示它,在其他 unclickable
中不可见。
第一个Clear Menu
喜欢
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.clear();
}
然后 TRUE as setHasOptionsMenu(true);
in onCreate()
of fragment method
不要在主页中扩充菜单activity而是在片段中扩充菜单
像这样
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
这样,只有当片段可见时,片段中的菜单项才会膨胀
首先Override Create Method in Fragment然后写入setHasOptionsMenu(true)
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
然后在 Fragment 中覆盖 OnPrepareOptionMenu 方法并编写我放在其中的代码。
我只隐藏我的搜索菜单。同样,您可以根据自己的选择隐藏所有菜单项或选择项。
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem item=menu.findItem(R.id.menu_search);
if(item!=null)
item.setVisible(false);
}
我在HomeActivity
中膨胀选项菜单。但我需要选项菜单在某些 fragments
中显示,而在其他中隐藏。
我尝试在 onCreate()
片段方法中使用 setHasOptionsMenu(false);
行。
这是 HomeActivity
optionmenu
按钮声明
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//initialize button
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);
return true;
}
//action when i press it
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// action with ID action_refresh was selected
case R.id.toolbar_acquista:
Toast.makeText(this, "Acquisto", Toast.LENGTH_SHORT)
.show();
break;
}
return true;
}
我试图在 fragment
选项菜单 clickable
中显示它,在其他 unclickable
中不可见。
第一个Clear Menu
喜欢
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.clear();
}
然后 TRUE as setHasOptionsMenu(true);
in onCreate()
of fragment method
不要在主页中扩充菜单activity而是在片段中扩充菜单
像这样
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
这样,只有当片段可见时,片段中的菜单项才会膨胀
首先Override Create Method in Fragment然后写入setHasOptionsMenu(true)
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
然后在 Fragment 中覆盖 OnPrepareOptionMenu 方法并编写我放在其中的代码。 我只隐藏我的搜索菜单。同样,您可以根据自己的选择隐藏所有菜单项或选择项。
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem item=menu.findItem(R.id.menu_search);
if(item!=null)
item.setVisible(false);
}