1

当 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);
 }

对于 searchView 小部件,我在 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 中找不到任何负责折叠搜索视图小部件的元素。

4

1 回答 1

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);
于 2012-12-17T19:28:53.420 回答