[英]How do I hide the OptionMenu in a toolbar from a fragment?
我在HomeActivity
选项菜单。 但是我需要选项菜单来显示某些fragments
,而隐藏在其他fragments
中。
我尝试了setHasOptionsMenu(false);
onCreate()
片段方法中的行。
这是optionmenu
按钮声明HomeActivity
@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作为setHasOptionsMenu(true);
在片段方法的onCreate()
中
不要在家庭活动中膨胀菜单,而是在片段内部膨胀菜单
像这样
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
这样,只有当片段可见时,菜单项才会在片段中膨胀
首先在Fragment中覆盖Create方法并编写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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.