我想更改操作栏中SearchView中闪烁光标的颜色(为了兼容性,我使用的是Actionbar 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:width="1dp" />
</shape>
我确实看了一下SearchView小部件的实现,虽然它使用了AutoCompleteTextView来输入文本。由于AutoCompleteTextView是从EditText小部件派生的,我不太明白为什么样式适用于EditText而不适用于AutoCompleteTextView(因此也适用于SearchView)。
有没有人设法在SearchView小部件中更改光标的颜色?
答案 0 :(得分: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>