Новая панель инструментов Android: как скрыть значок меню переполнения?
Я только что создал приложение, включающее новую панель инструментов Android. Моя проблема: Как мне скрыть значок / кнопку этого меню переполнения: http://prntscr.com/62mmus? Я уже пробовал это, но это не работает:
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.hideOverflowMenu();
5 ответов
Просто используйте:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return false;
}
Вот как я это сделал.
Это мой оригинальный файл menu_main.xml в папке меню:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
</menu>
Удалить элемент:
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
Перейдите к своей основной деятельности и закомментируйте следующее if (id == R.id.action_settings):
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
// if (id == R.id.action_settings) {
// return true;
// }
return super.onOptionsItemSelected(item);
}
Запустите ваше приложение - значок меню переполнения исчез.
У меня получилось: добавить следующее: android:visible="false" в пункт меню в файле меню (global.xml) в папке меню.
например:
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"
android:visible="false"
/>
Просто верните false при вызове метода onCreateOptionsMenu
Пример:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!showToolbarMenu)
return false;
getMenuInflater().inflate(R.menu.main_activity, menu);
return super.onCreateOptionsMenu(menu);
}
Используйте команду invalidateOptionsMenu();
И ваши проблемы будут решены.
Не реализовывать onCreateOptionsMenu(Menu menu)
метод. Если да, то не используйте этот методgetMenuInflater().inflate(R.menu.main, menu);
как эта строка в onCreateOptionsMenu
метод раздувает кнопку переполнения с меню, объявленным в ресурсе R.menu.main
.
У меня это сработало, я просто удалил строку getMenuInflater(). Inflate(R.menu.main_activity, menu);