android - 单击时展开 SearchView 并使菜单项消失
问题描述
我在工具栏中使用了 SearchView(以保持搜索视图的扩展)。我希望 searchView 扩展并覆盖整个工具栏,同时使其他项目消失,包括抽屉按钮。
<androidx.appcompat.widget.Toolbar
android:id="@+id/action_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/bg_gradient"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:menu="@menu/main_activity_menu"
app:titleTextColor="@color/white">
<SearchView
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/search_bg"
android:iconifiedByDefault="false"
android:queryHint="Search here"
android:layout_marginTop="12dp"/>
</androidx.appcompat.widget.Toolbar>
这是同一 XML 中的导航视图代码:
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
mapbox:layout_constraintStart_toStartOf="parent">
</com.google.android.material.navigation.NavigationView>
这是我的菜单代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/notification"
android:title="notification"
android:icon="@drawable/notification_icon"
app:showAsAction="always">
</item>
</menu>
和java代码
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if(toggle.onOptionsItemSelected(item)){
return true;
}
else if(item.getItemId() == R.id.notification){
return true;
}else if (item.getItemId() == R.id.search){
return true;
}
return super.onOptionsItemSelected(item);
}
摘要:我希望搜索视图在点击时展开,并且在展开时我想让项目消失。
解决方案
推荐阅读
- javascript - JQuery width() 方法返回不正确的值
- sql - 在 MS Access 中,创建动态查询后,如何使用记录集中的相应值更新表单上的文本框?
- c - (libwebsocket) 如何在客户端连接上发送数据包
- javascript - 单击同一 nodeList 中的任何节点时从 nodeList 中删除类名
- .net - 尝试使用 Q# 设置元组时出现错误“设置语句必须具有变量或数组元素目标”
- java - 迭代 LDAP 搜索结果
- sql - 不同字段的 Sql 代码
- c# - WindowsAzure.Storage,版本 = 9.3.0.0 - 异常无法加载文件或程序集
- c++ - C ++获取两个分隔符之间的字符串并替换它
- nativescript - Nativescript Sidekick 云构建错误 Android