首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改SearchView默认图标?

如何更改SearchView默认图标?
EN

Stack Overflow用户
提问于 2013-01-17 06:08:52
回答 6查看 31.5K关注 0票数 17

我使用了"Android Action Bar Style Generator“来生成我自己的全息主题。然后我添加了两个图标到操作栏,一个用于searchFilter,另一个用于文件选择器,这两个图标都是白色的。文件选择器图标(在右边)看起来不错,但不知何故搜索图标看起来是深灰色的。在搜索文本视图中键入时,关闭按钮也显示为深灰色。

我尝试过更改actionbar和搜索视图的颜色,但都没有成功。为什么搜索视图显示此颜色?我怎样才能改变它?

非常感谢。

更新:我以为我的应用程序正在使用我的图标,但它没有,它使用了默认的搜索视图图标,所以我的问题实际上是,我如何更改搜索视图的默认图标?menu.xml文件中的这句话不起作用:

代码语言:javascript
复制
android:icon="@drawable/selectable_header_search"
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-17 17:23:01

不幸的是,由于主题属性searchViewSearchIcon不是公共的,因此没有简单的方法将SearchView图标更改为自定义的可绘制文件。详情请参阅this answer。

然而,我认为你的问题是因为继承了错误的主题造成的。请使用android:Theme.Holo.Light.DarkActionBar作为您的主题的基础。那么操作栏上的默认图标应该是浅色的。

代码语言:javascript
复制
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    ...
</style> 
票数 18
EN

Stack Overflow用户

发布于 2013-12-10 18:58:26

由于searchViewSearchIcon属性不是公共的,因此可以使用以下代码更改图标:

代码语言:javascript
复制
int searchIconId = searchView.getContext().getResources().getIdentifier("android:id/search_button",null, null);
ImageView searchIcon = (ImageView) searchView.findViewById(searchIconId);
searchIcon.setImageResource(R.drawable........);
票数 10
EN

Stack Overflow用户

发布于 2013-07-12 04:56:03

尝试在showAsAction中设置此选项:*MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW*

如果没有此选项,SearchView将不会显示您为操作按钮设置的图标。

代码语言:javascript
复制
menu.add("Search")
            .setIcon(
                    getResources().getDrawable(
                            R.drawable.selectable_header_search))
            .setActionView(searchView)
            .setShowAsAction(
                    MenuItem.SHOW_AS_ACTION_ALWAYS
                            | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
                            | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14368788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档