SearchView 即使在 "app:showAsAction="always 之后也是可折叠的”
SearchView is collapsable even after "app:showAsAction="always"
我有一个简单的片段工具栏:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarDriver"
app:menu="@menu/menu_toolbar_driver_list"
app:navigationIcon="@drawable/baseline_menu_24"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:collapseIcon="@drawable/baseline_menu_24"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_searchDrivers"
android:icon="@android:drawable/ic_menu_search"
android:title="Search Drivers..."
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always" />
</menu>
代码:
mtSearchDrivers.setIconified(false);
看起来像这样:
如您所见,在右侧有一个“x”按钮,它应该只用于删除 searchviewtext 但如果没有输入文本,就像在这种情况下用户点击“x”,即使设置了 app:showAsAction="always"
,searchview 也会崩溃。可能是什么问题?
我解决了这个问题:
我只是将搜索视图作为工具栏的子项,而不是自己的菜单项。
我有一个简单的片段工具栏:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarDriver"
app:menu="@menu/menu_toolbar_driver_list"
app:navigationIcon="@drawable/baseline_menu_24"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:collapseIcon="@drawable/baseline_menu_24"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_searchDrivers"
android:icon="@android:drawable/ic_menu_search"
android:title="Search Drivers..."
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always" />
</menu>
代码:
mtSearchDrivers.setIconified(false);
看起来像这样:
如您所见,在右侧有一个“x”按钮,它应该只用于删除 searchviewtext 但如果没有输入文本,就像在这种情况下用户点击“x”,即使设置了 app:showAsAction="always"
,searchview 也会崩溃。可能是什么问题?
我解决了这个问题:
我只是将搜索视图作为工具栏的子项,而不是自己的菜单项。