在搜索视图中自定义光标颜色



我想在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>

相关内容

  • 没有找到相关文章

最新更新