SearchView 中的自定义光标颜色
Posted
技术标签:
【中文标题】SearchView 中的自定义光标颜色【英文标题】:Custom cursor color in SearchView 【发布时间】:2013-03-09 18:37:30 【问题描述】:我想更改操作栏中SearchView 中闪烁光标的颜色(为了兼容性,我正在使用操作栏 Sherlock)。到目前为止,我已经设法更改了 EditText 元素的光标颜色。 This SO post 帮助我实现了这一点,而我用于 EditText 的样式如下所示:
<style name="CustomTheme" parent="Theme.Sherlock.Light">
<item name="android:editTextStyle">@style/edittext_style</item>
</style>
<style name="edittext_style" parent="@android:style/Widget.EditText">
<item name="android:textCursorDrawable">@drawable/red_cursor</item>
</style>
红色光标如下所示:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient android:startColor="@color/darkRed"
android:endColor="@color/darkRed" />
<size android: />
</shape>
我确实查看了 SearchView 小部件的实现,并且我认为它使用 AutoCompleteTextView 进行文本输入。由于 AutoCompleteTextView 派生自 EditText 小部件,我真的不明白为什么该样式适用于 EditText 但不适用于 AutoCompleteTextView(因此适用于 SearchView)。
有没有人设法改变 SearchView 小部件中光标的颜色?
【问题讨论】:
【参考方案1】:我刚刚找到了一个可行的解决方案。我替换了
<style name="edittext_style" parent="@android:style/Widget.EditText">
<item name="android:textCursorDrawable">@drawable/red_cursor</item>
</style>
与
<style name="SearchViewStyle" parent="Widget.Sherlock.Light.SearchAutoCompleteTextView">
<item name="android:textCursorDrawable">@drawable/red_cursor</item>
</style>
并修改了我的主题,使其看起来像这样:
<style name="CustomTheme" parent="Theme.Sherlock.Light">
...
<item name="searchAutoCompleteTextView">@style/SearchViewStyle</item>
...
</style>
【讨论】:
您只需要覆盖 SearchAutoCompleteTextView 主题上的属性 android:textCursorDrawable 就可以了。 是的,我就是这么做的。谢谢 是否可以更改默认颜色的颜色,但不能更改可绘制对象的颜色?我使用了 colorControlActivated ,但这不仅仅改变了文本插入符号的颜色......以上是关于SearchView 中的自定义光标颜色的主要内容,如果未能解决你的问题,请参考以下文章
自定义searchview的编辑框,搜索按钮,删除按钮,光标等
Android SearchView 自定义SearchIcon和字体颜色大小