Android 当没有id或菜单项xml可用时,如何隐藏工具栏中的3点图标

Android 当没有id或菜单项xml可用时,如何隐藏工具栏中的3点图标,android,android-layout,Android,Android Layout,这个问题已经被问了很多次,但我似乎无法隐藏3点图标 menu\u main.xml中没有action\u settings菜单项,但设置图标仍然显示 我无法将其隐藏在onprepareOptions功能表中,因为该图标没有id @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item= menu.findItem(R.id.menu_settings); item.setVisible(fal

这个问题已经被问了很多次,但我似乎无法隐藏3点图标

menu\u main.xml
中没有
action\u settings
菜单项,但设置图标仍然显示

我无法将其隐藏在
onprepareOptions功能表中,因为该图标没有id

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.menu_settings);
    item.setVisible(false);
    super.onPrepareOptionsMenu(menu);
    return true;
}
我的主要活动开始于:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/toolbar_actionbar"
        layout="@layout/toolbar_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar_actionbar">

        <LinearLayout

        ....
而且
菜单\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:appcompat="http://schemas.android.com/apk/res-auto"
    style="@style/ToolBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="@dimen/abc_action_bar_default_height_material"/>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:appcompat="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/menu_search"
        android:title="@string/menu_search"
        appcompat:actionViewClass="android.support.v7.widget.SearchView"
        appcompat:showAsAction="always"/>

</menu>
从这里尝试隐藏
R.id.action\u设置

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.action_settings);
    item.setVisible(false);
    super.onPrepareOptionsMenu(menu);
    return true;
}

将菜单动态设置为工具栏

 Toolbar yourToolBar = (Toolbar) findViewById(R.id.my_toobar);
 setSupportActionBar(yourToolBar);
 yourToolBar.inflateMenu(R.menu.search_menu);
 yourToolBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() 
 {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (item.getItemId() == R.id.search) {
                // handle search logic here
            } 
            return true;
        }
    });
而不是

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item= menu.findItem(R.id.menu_settings);
item.setVisible(false);
super.onPrepareOptionsMenu(menu);
return true;
} 
你也许应该这样做

// This will hide the overflow menu icon
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return false;
}

菜单搜索用于工具中的搜索图标bar@the_prole我明白,请尝试隐藏
action\u设置
R.id.action\u设置不存在,因为主菜单中没有action设置项,所以您的菜单中没有菜单设置。\u main.xml它是否会向您返回空值?这会删除所有图标,但我有我要保留的搜索请使用查看我的更新答案,将搜索菜单动态添加到工具栏
// This will hide the overflow menu icon
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return false;
}