2012-07-31 131 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); 
相关问题