android - 操作栏项目显示在 NavigationView 中并且无法从操作栏中隐藏 3 个点
问题描述
我在同一页面(主页)的操作栏上有 NavigationView 和搜索过滤器,在操作栏上添加搜索项后,它同时显示在操作栏和导航视图(菜单)中。而且我无法隐藏我不想要的操作栏右侧的 3 个点。找到下面的代码和屏幕截图
activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:id="@+id/grp1">
<item
android:id="@+id/nav_camera"
android:icon="@drawable/theme"
android:title="@string/nav_theme" />
</group>
<group android:id="@+id/grp2">
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/fingerprint"
android:title="@string/nav_touchid" />
</group>
<group android:id="@+id/grp3">
<item
android:id="@+id/nav_contact"
android:icon="@drawable/contact_us"
android:title="@string/nav_contacts" />
</group>
<group android:id="@+id/grp4">
<item
android:id="@+id/nav_manage"
android:icon="@drawable/notification"
android:title="@string/nav_notifications" />
</group>
<group android:id="@+id/grp5">
<item
android:id="@+id/nav_user_guide"
android:icon="@drawable/user_guide"
android:title="@string/nav_userguide" />
</group>
<group android:id="@+id/grp6">
<item
android:id="@+id/nav_logout"
android:icon="@drawable/logout"
android:title="Log Out" />
</group>
<item
android:id="@+id/action_search"
android:icon="@drawable/searchicon"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
</menu>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_drawer, menu);
// Retrieve the SearchView and plug it into SearchManager
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
解决方案
您对导航抽屉和菜单项使用相同的菜单文件。
为您的菜单项创建一个不同的菜单文件R.menu.menu_main
或任何您想要的文件(带有三个点的那个),这将包含 SearchView。
为导航抽屉创建另一个菜单文件R.menu.menu_navigation
,这将包含相机、图库、联系人、连接项,然后将此菜单文件附加到导航抽屉。
推荐阅读
- postgresql - 如何在 PostgreSQL LDAP 身份验证中隐藏 ldapbindpasswd?
- kubernetes - splunk-connect-kuberentes 到 splunk light - 没有数据错误
- vue.js - EsLint airbnb-base import/no-unresolved
- c - 使用 write() C 函数时出现 SIGPIPE 错误
- arrays - 在 cplex 中使用 for 循环策略创建一个数组
- vue.js - VueX:为什么 vuex 存储数据不更新组件数据属性?
- svg - vue-app 中生成的 SVG 在 Illustrator 中具有模式偏移
- sql - 查询以汇总未同时运行的后续持续时间
- razor - Razor 和 Razor 页面有什么区别
- c++ - 子类作为模板基类的模板模板参数,它又是子类函数参数