Android - SearchView in toolbar not expanding

浪子不回头ぞ 提交于 2019-12-04 03:24:20

You should use MenuItemCompat

mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);

and for collapsing SearchView use

MenuItemCompat.collapseActionView(searchItem);

and make sure you have changed android:actionViewClass to app:actionViewClass

I had same problem. I just solved mine by making a minor tweak. change android:actionViewClass="android.support.v7.widget.SearchView"

to app:actionViewClass="android.support.v7.widget.SearchView"

In MainActivity you have to extends ActionbarActivity

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appcompat="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools">

<item
    android:id="@+id/menu_search"
    android:title="@string/menu_search"
    appcompat:actionViewClass="android.support.v7.widget.SearchView"
    appcompat:showAsAction="always"/>

MainActivity.java

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    // Inflate menu to add items to action bar if it is present.
    inflater.inflate(R.menu.menu_main, menu);
    // Associate searchable configuration with the SearchView
    SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView =
            (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

    return true;
}

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!