2011-12-14 24 views
11

Muszę mieć EditText w mojej aplikacji na białym tle. Zrobiłem to w pliku theme.xmlZmiana koloru kursora EditText w Androidzie 3.0

<style name="myEditText" parent="@android:style/Widget.EditText"> 
    <item name="android:background">#ffffffff</item> 
    <item name="android:textColor">#ff000000</item> 
</style> 

Problem polega na tym, że kursor jest nadal biały i dlatego nie jest widoczny. Zrobiłem trochę googling i znaleźć na to pytanie tutaj na StackOverflow: Set EditText cursor color

Sposób to zrobić jest kluczem android:textCursorDrawable. Ale ten klucz wydaje się być dostępny tylko z celem 3.2. Ale nasi klienci chcą celu 3.0 i nie mogłem znaleźć innego rozwiązania ...

Czy jest jakikolwiek sposób zmienić kolor migającego kursora z 3.0 jako celem?

Dzięki za pomoc :)

+1

http://stackoverflow.com/questions/7238450/set-edittext-cursor-color Proszę sprawdzić górny wahacz –

Odpowiedz

2

Znalazłem odpowiedź :)

mam ustawić motyw w stylu EditText do:

<item name="android:editTextStyle">@style/myEditText</item> 

Następnie użyłem następujące rozciągliwej ustawić kursor:

<style name="myEditText" parent="@android:style/Widget.Holo.Light.EditText"> 
<item name="android:background">@android:drawable/editbox_background_normal</item> 
<item name="android:textCursorDrawable">@android:drawable/my_cursor_drawable</item> 
<item name="android:height">40sp</item> </style> 

android: textCursorDrawable jest kluczem tutaj.

A także odnieść ten Vertical line using XML drawable

+8

Niestety, prawdopodobnie nie czytać pytanie. 'testCursorDrawable' jest niedostępne w systemie Android 3.0 –

1

starałem się zmienić kolor kursora w mojej aplikacji, które ukierunkowane API 8. Znalazłem, że TextView wykorzystuje textColor nieruchomości jako koloru kursora. Tutaj część onDraw() zdefiniowano w TextView API 8:

int color = mCurTextColor; 

    if (mLayout == null) { 
     assumeLayout(); 
    } 

    Layout layout = mLayout; 
    int cursorcolor = color; 

cursorcolor stosuje się następnie do constract obiektu android.graphics.Path reprezentujący kolor.

Jeśli zachodzi potrzeba zmiany tego zachowania, masz spore zadanie, musisz zaimplementować własne TextView.