#android #android-fragments #menu #android-menu
#Android #android-фрагменты #меню #android-menu
Вопрос:
Я безуспешно пытался скрыть или отключить overflow menu
в одном fragment
.
Я пробовал настраивать setHasOptionsMenu(false)
без успеха, а затем я попробовал setHasOptionsMenu(true)
и попытался увеличить с помощью пустого меню, как показано ниже.
Обе попытки у меня не работают.
Как мне скрыть или отключить меню опций / переполнения только в одном фрагменте??
Заранее спасибо!
Фрагмент
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.empty, menu);
super.onCreateOptionsMenu(menu, inflater);
}
Комментарии:
1. Вы путаете фрагмент с активностью?
2. @PozzoApps нет. Я хочу изменить меню опций только в определенном фрагменте. Я понял, как это сделать, спасибо!
Ответ №1:
Выяснил, как это сделать. Просто нужно установить пункты меню, которые я не хочу видеть. В моем случае я сделал все из них невидимыми, и это полностью удалило меню переполнения.
Также не забывайте, что вы должны setHasOptionsMenu(true)
в вашем onCreate
, чтобы он знал, что нужно вызвать onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
if (menu != null) {
menu.findItem(R.id.menu_settings).setVisible(false);
menu.findItem(R.id.menu_leave_feedback).setVisible(false);
menu.findItem(R.id.menu_shop).setVisible(false);
}
}
Ответ №2:
Я знаю, что этот ответ очень запоздал, но мне нравится им делиться.
В методе Fragment onCreate:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
И в методе Fragment onCreateOptionsMenu():
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
}
Ответ №3:
setHasOptionsMenu(true)
в onCreate() и
@Override
public void onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
menu.findItem(R.id.xxx).setVisible(false);
menu.findItem(R.id.yyy).setVisible(false);
}