5

我想在 Actionbar 的SearchView中更改闪烁光标的颜色(为了兼容性,我使用 Actionbar Sherlock)。到目前为止,我已经设法更改了 EditText 元素的光标颜色。这篇 SO 帖子帮助我实现了这一点,我用于 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 小部件中光标的颜色?

4

1 回答 1

8

我刚刚找到了一个可行的解决方案。我替换

<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>
于 2013-03-20T15:49:30.317 回答