AppCompatActivity的ActionBar中,searchView无法正常使用

AppCompatActivity的ActionBar中,searchView无法正常使用

使用的主题是@style/Theme.AppCompat.Light

下面是Menu

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.beijingwxhl.weixinactionbardemo.MainActivity" >
    <item android:id="@+id/add" android:icon="@android:drawable/ic_menu_add"
        android:orderInCategory="100" android:title="添加"
        app:showAsAction="always"/>
    <item android:id="@+id/search" android:icon="@android:drawable/ic_menu_search"
        android:orderInCategory="1" android:title="搜索"
        app:showAsAction="always|withText" 
        android:actionViewClass="android.widget.SearchView"/>
</menu>

clipboard.png

点击search按钮无效果

根据象山炎亚纶的回答已经,更正如下两处
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView"

但是searchView还是无法正常展开

阅读 4.3k
1 个回答
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
   
    <item
        android:id="@+id/favorites_search"
        android:icon="@drawable/favorite_search"
        android:imeOptions="actionSearch"
        android:inputType="textCapWords"
        android:title="@string/action_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="always|collapseActionView"></item>

</menu>
 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_favorites, menu);
        MenuItem searchItem = menu.findItem(R.id.favorites_search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                return true;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                return true;
            }
        });
        return true;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题