首页 > 解决方案 > 单击时展开 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);
    }

摘要:我希望搜索视图在点击时展开,并且在展开时我想让项目消失。

标签: androidandroid-toolbarsearchview

解决方案


推荐阅读