Android 当没有id或菜单项xml可用时,如何隐藏工具栏中的3点图标
这个问题已经被问了很多次,但我似乎无法隐藏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
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;
}