Android:自定义SearchView小部件

时间:2012-07-31 21:40:13

标签: android searchview

如何在展开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);
 }

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

1 个答案:

答案 0 :(得分: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);