4

嗨,由于一些冲突,我最近将我的 android 项目更改为使用androidx库。

但是现在,我的工具栏中的SearchView显示在溢出菜单中(仅在其中显示“搜索”,当我单击它时没有任何反应),而使用旧的支持库时并非如此。

单击此处查看示例

我需要旧的图标化搜索视图。请帮忙。

activity_main.xml

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolBar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:logo="@drawable/logo"
    app:layout_scrollFlags="scroll|enterAlways|snap"/>

我的 menu.xml

<item
    android:id="@+id/action_search"
    android:icon="@drawable/search_icon"
    android:showAsAction="always|collapseActionView"
    android:actionViewClass="androidx.appcompat.widget.SearchView"
    android:title="@string/search"/>

并在 onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main_menu,menu);

    SearchView searchView = (SearchView) menu.findItem( R.id.action_search).getActionView();

    return true;
}

如果有帮助,我的活动也是一个 androidx AppCompatActivity

我浏览了 android 开发者网站上的 androidx 文档以及许多 stackoverflow 问题,但没有运气。这个问题似乎是第一个..

4

1 回答 1

2

当我点击它时没有任何反应

没有任何反应,因为您设置了它always|collapseActionView,这意味着您应该SearchView这样放置:

<item
        android:id="@+id/action_search"
        android:icon="@drawable/abc_ic_search_api_mtrl_alpha" <!-- You can change this.. -->
        android:title="@string/srch"
        app:actionViewClass="androidx.appcompat.widget.SearchView" 
        app:showAsAction="ifRoom|collapseActionView" />

在这里查看我的完整答案:https ://stackoverflow.com/a/34825224/4409113

于 2018-08-10T04:12:12.857 回答