更改 searchview 小部件的背景可绘制 [英] Changing the background drawable of the searchview widget

查看:77
本文介绍了更改 searchview 小部件的背景可绘制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更改位于 Android 操作栏搜索视图小部件中的可绘制对象.

目前看起来是这样的:

但我需要将可绘制的蓝色背景更改为红色.

除了滚动我自己的搜索小部件之外,我尝试了很多方法,但似乎没有任何效果.

有人能指出我改变这种情况的正确方向吗?

解决方案

Intro

不幸的是,无法像您一样使用 XML 中的主题、样式和继承来设置 SearchView 文本字段样式, 可以找到一条使布局膨胀的行:

inflater.inflate(R.layout.search_view, this, true);

现在我们知道SearchView 布局在名为res/layout/search_view.xml 的文件中.查看 search_view.xml我们可以找到一个内部 LinearLayout 元素(id search_plate),其中包含 android.widget.SearchView$SearchAutoComplete(看起来像我们的搜索视图文本字段):

 

现在,我们现在根据当前主题的 searchViewTextField 属性设置背景.

调查属性(是否容易设置?)

为了检查 searchViewTextField 属性是如何设置的,我们调查了 res/values/themes.xml.默认Theme中有一组与SearchView相关的属性: