2015-08-19 74 views
2

我已經將setIconified()setIconifiedByDefault()定義爲false,但SearchView菜單項默認情況下不會擴展。這裏是我是如何實現它:如何使工具欄上的SearchView始終展開?

View customTitle = getLayoutInflater().inflate(R.layout.toolbar_custom_title, null); 
toolbar.inflateMenu(R.menu.menu_buddies); 
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha); 
toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       finish(); 
      } 
     }); 

SearchView searchView = (SearchView) toolbar.getMenu().findItem(R.id.menu_search).getActionView(); 
searchView.setQueryHint("Search Buddies"); 
searchView.setIconified(false); 
searchView.setIconifiedByDefault(false); 

我menu_buddies:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:id="@+id/menu_search" 
     xmlns:pawesome="http://schemas.android.com/apk/res-auto" 
     android:title="@string/action_search" 
     android:icon="@drawable/abc_ic_search_api_mtrl_alpha" 
     pawesome:showAsAction="always|collapseActionView" 
     pawesome:actionViewClass="android.support.v7.widget.SearchView" /> 

</menu> 
+0

安置自己的XML與'R.id.menu_search' –

+0

@dieter_h已經發布的 –

+0

可能的複製文件[展開,並搜索查看給自動對焦(http://stackoverflow.com/questions/11710042/expand-and-give-focus-to-searchview-automatically) – Sufian

回答

1

您需要的android:showAsAction值更改爲always。 SearchView的屬性android:iconifiedByDefault shouldtrue

+0

This works,but how can I disable collapsing my searchview? –

+0

收起原文: 'searchView.setIconified(true);' –

+3

searchview仍然崩潰。我希望它始終被展開@dieter_h –

0

你解決了嗎? 刪除:

searchView.setIconified(false); 

,只保留此行:

searchView.setIconifiedByDefault(false); 

除了showAsAction = 「總是」 菜單中的XML。

這對我有用,searchview被展開,不能以任何方式摺疊。

+2

searchView集中時按下後退按鈕似乎關閉了searchview。 – Chris

+0

通過此搜索查看不關注。 – RobinHood

2

以上答案都不適用於我。

使用此

SearchManager searchManager = (SearchManager) mActivity.getSystemService(Context.SEARCH_SERVICE); 
       SearchView searchView = new SearchView(mActivity.actionBar.getThemedContext()); 
       searchView.setSearchableInfo(searchManager.getSearchableInfo(mActivity.getComponentName())); 
       searchView.setIconifiedByDefault(false); 
       searchView.setQueryHint("search"); 
       menu.findItem(R.id.action_search).setActionView(searchView);