【发布时间】:2020-10-05 04:06:39
【问题描述】:
我在MaterialToolbar 中使用android.widget.SearchView,并且还在菜单资源文件中设置了正确的属性。但是当我点击搜索图标时,它并没有展开。相反,搜索图标移动到左侧。再次单击它时,它会展开,但搜索图标仍会出现在 EditText 中。
布局文件
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/Widget.MaterialComponents.Toolbar.Primary"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
app:title="@string/app_name" />
</com.google.android.material.appbar.AppBarLayout>
菜单文件
<?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">
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_search"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.widget.SearchView" />
</menu>
点击前
点击后
【问题讨论】:
-
尝试将
androidx.appcompat.widget.SearchView用于app:actionViewClass。 -
@MikeM。使用 AppCompat 版本后,搜索视图完美展开。但扩展后,EditText 仍然有搜索图标,一旦我开始输入,它就会消失。此外,
androidx.appcompat.widget.SearchView的文档说只有在您想支持 API 7 时才应该使用它。如果您使用的是 API 11 或更高版本,请使用框架类。这就是我感到困惑的地方。 -
嗯,我从来不知道这是
SearchView的记录建议。在这一点上,我不知道该告诉你什么。 -
好的,我认为您将不得不使用动作布局来摆脱提示,因为它仅由 XML 属性设置。创建一个单独的布局文件,其中只有
<SearchView>,宽度为match_parent,高度为wrap_content,键为app:searchHintIcon="@null"。然后将app:actionViewClass="android.widget.SearchView"更改为app:actionLayout="@layout/your_search_view_layout"。让我知道会发生什么。 -
我想我找到了答案。您能否详细说明这是对我帖子的回答,以便我可以将其标记为我的解决方案?
标签: android toolbar searchview