2012-07-31 174 views
1

當SearchView窗口小部件展開時,我們如何更改顯示在左側的應用程序圖標?Android:自定義SearchView窗口小部件

這裏是我的onCreateOptionsMenu()代碼:

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    final TextView tv = (TextView)findViewById(R.id.textView); 
    SearchView searchView = (SearchView)menu.findItem(R.id.menu_search).getActionView(); 
    searchView.setQueryHint("Search"); 

    return super.onCreateOptionsMenu(menu); 
} 

以XML,我有以下的搜索查看插件:

<item android:id="@+id/menu_search" android:title="search" 
android:showAsAction="ifRoom|collapseActionView" 
android:actionViewClass="android.widget.SearchView" /> 

我還通過search_view.xml(https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/search_view.xml#L75)看,那默認情況下會膨脹,以檢查是否可以從那裏獲取元素,然後更改圖像。但是我在這個xml中找不到任何負責摺疊搜索視圖小部件的元素。

+0

你可以發佈圖片,或者您正在嘗試的代碼? – 0gravity 2012-07-31 21:43:53

+0

我編輯了這個問題。 – andro 2012-07-31 22:03:38

回答

0

試試這個:

SearchView searchView = new SearchView(getContext()); 

OptionCommand searchCommand = new OptionCommand(); 
searchCommand.setActionView(searchView); 
searchCommand.setIcon(getResources().getDrawable(android.R.drawable.ic_menu_search)); 
searchCommand.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 
searchView.setBackgroundColor(Color.WHITE); 
相關問題