2013-03-20 23 views
5

Voglio cambiare il colore del cursore lampeggiante in un SearchView nella barra delle azioni (Sto usando Actionbar Sherlock per compatibilità). Fino ad ora sono riuscito a cambiare il colore del cursore per un elemento EditText. This SO post mi ha aiutato a realizzare questo e lo stile che sto utilizzando per l'EditText assomiglia a questo:Colore cursore personalizzato in SearchView

<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> 

Il cursore rosso si presenta così:

<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> 

ho preso uno sguardo alla realizzazione di il widget SearchView e come se utilizzasse uno AutoCompleteTextView per l'input di testo. Poiché AutoCompleteTextView è derivato dal widget EditText, non capisco veramente perché lo stile funzioni per EditText, ma non per AutoCompleteTextView (e quindi per SearchView).

Qualcuno è riuscito a cambiare il colore del cursore nel widget SearchView?

risposta

7

Ho appena trovato una soluzione che funziona. I sostituisce la

<style name="edittext_style" parent="@android:style/Widget.EditText"> 
    <item name="android:textCursorDrawable">@drawable/red_cursor</item> 
</style> 

con

<style name="SearchViewStyle" parent="Widget.Sherlock.Light.SearchAutoCompleteTextView"> 
    <item name="android:textCursorDrawable">@drawable/red_cursor</item> 
</style> 

e modificato il mio tema in modo che assomiglia a questo:

<style name="CustomTheme" parent="Theme.Sherlock.Light"> 
    ... 
    <item name="searchAutoCompleteTextView">@style/SearchViewStyle</item> 
    ... 
</style> 
+0

solo bisogno di ignorare l'androide attributo: textCursorDrawable sul tema SearchAutoCompleteTextView e che avrebbe dovuto funzionare. – MaTriXy

+0

sì, è quello che ho fatto. Grazie – mvieghofer

+0

È possibile cambiare il colore di quello predefinito, ma non il drawable? Ho usato colorControlActivated, ma questo cambia più del semplice colore del testo del cursore ... –

Problemi correlati