我想在Actionbar中改变SearchView中闪烁光标的颜色(我使用Actionbar Sherlock进行兼容性)。到目前为止,我已经成功地更改了EditText元素的光标颜色。这篇文章帮助我完成了这一点,我使用的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:width="1dp" />
</shape>
我确实看了一下SearchView小部件的实现,我认为它使用了AutoCompleteTextView作为文本输入。因为AutoCompleteTextView是从EditText小部件派生出来的,我真的不明白为什么这种风格是为EditText工作的,而不是为AutoCompleteTextView工作的(因此对于SearchView)。
是否有人设法改变了SearchView小部件中光标的颜色?
我刚刚找到了一个可行的解决方案。I代替
<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>