我刚刚创建了一个应用程序,其中包括新的 Android 工具栏。我的问题是:如何隐藏这个溢出菜单图标/按钮: http: //prntscr.com/62mmus?我已经尝试过了,但它不起作用:
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.hideOverflowMenu();
我刚刚创建了一个应用程序,其中包括新的 Android 工具栏。我的问题是:如何隐藏这个溢出菜单图标/按钮: http: //prntscr.com/62mmus?我已经尝试过了,但它不起作用:
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.hideOverflowMenu();
只需使用:
@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"
/>
调用onCreateOptionsMenu方法时只返回 false
前任:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!showToolbarMenu)
return false;
getMenuInflater().inflate(R.menu.main_activity, menu);
return super.onCreateOptionsMenu(menu);
}
使用命令
invalidateOptionsMenu();
你的问题将得到解决。
这对我有用,我刚刚删除了行 getMenuInflater().inflate(R.menu.main_activity, menu);
不要实现该onCreateOptionsMenu(Menu menu)
方法。如果您仍然这样做,请不要使用此方法getMenuInflater().inflate(R.menu.main, menu);
,因为该方法中的这一行 使用onCreateOptionsMenu
资源中声明的菜单来膨胀溢出按钮R.menu.main
。