Mam ten problem, w którym używam motywu Holo Androida w projekcie tabletu. Mam jednak fragment na ekranie, który ma białe tło. Dodaję EditText
komponent do tego fragmentu. Próbowałem zastąpić motyw, ustawiając tło zasobów motywu Holo.Light. Jednak mój kursor tekstowy (karat) pozostaje biały, a zatem niewidoczny na ekranie (mogę go słabo dostrzec w polu edycyjnym ...).
Czy ktoś wie, jak mogę zmusić EditText do używania ciemniejszego koloru kursora? Próbowałem ustawić styl EditText na "@android:style/Widget.Holo.Light.EditText"
bez pozytywnego wyniku.
target
w swoim manifeście masz > 3,2, możesz go użyć i będzie on ignorowany w niższych wersjachW układzie
Następnie utwórz drawalble xml: color_cursor
Kursor ma biały kolor we właściwości EditText.
źródło
Wygląda na to, że wszystkie odpowiedzi krążą w krzakach.
W swoim
EditText
użyj właściwości:i dodaj drawable
black_cursor.xml
do swoich zasobów w następujący sposób:Jest to również sposób na tworzenie bardziej różnorodnych kursorów, jeśli potrzebujesz.
źródło
Istnieje nowy sposób zmiany koloru kursora w najnowszej
Appcompact
wersji 21Zmień
colorAccent
styl w następujący sposób:Następnie zastosuj ten styl do motywu aplikacji lub działań.
Aktualizacja : w ten sposób działa tylko w interfejsie API 21+Aktualizacja 2 : Nie jestem pewien, która minimalna wersja Androida może działać.
Testowane przez wersję Androida:
źródło
colorAccent
zmienia np. linię na dole,EditText
ale nie dotyka rzeczywistego koloru kursora. Aha, i oczywiście nie ma już „v21”.Znalazłem odpowiedź :)
Ustawiłem styl edycji tekstu motywu na:
Następnie użyłem następującego rysunku do ustawienia kursora:
`
`
Android: textCursorDrawable jest tutaj kluczem.
źródło
android:editTextStyle
, ale zmieniłem go, abyeditTextStyle
go naprawić. Zobacz stackoverflow.com/a/34010235/6744473Dla każdego, kto musi
EditText
dynamicznie ustawić kolor kursora, poniżej znajdziesz dwa sposoby na osiągnięcie tego.Najpierw utwórz kursor do rysowania:
Ustaw identyfikator zasobu rysowalnego kursora na utworzony przez ciebie rysunkowy (https://github.com/android/platform_frameworks_base/blob/kitkat-release/core/java/android/widget/TextView.java#L562-564"> źródło)) :
Aby tylko zmienić kolor domyślnego rysowalnego kursora, możesz użyć następującej metody:
źródło
AppCompatEditText
już masetSupportBackgroundTintList
, więc czy dodanie czegoś takiego nie byłoby dość prostesetSupportCursorTintList
?Późno na imprezę, oto moja odpowiedź,
To jest dla ludzi, którzy nie chcą zmienić
colorAccent
motywu nadrzędnego, ale chcą zmienićEditText
atrybuty!Przykład:
Teraz utwórz plik rysunkowy (
edit_text_background
) i dodaj xml zasobu do tła! Możesz dostosować, jak chcesz!Teraz, gdy ustawiłeś ten styl w motywie Aktywność.
Przykład:
W swoim działaniu masz motyw, ustaw do niego ten niestandardowy
editText
motyw.źródło
<item name="editTextStyle">@style/AppTheme.EditText</item> // inculude this
bez efektuandroid:editTextSteyle
, właściwyeditTextStyle
<item name="android:textCursorDrawable">@color/white</item>
nie działaNastępnie utwórz xml ciągliwy:
color_cursor
źródło
Dla mnie zmodyfikowałem zarówno AppTheme, jak i wartość colors.xml
Oto colors.xml
Wyjąłem atrybut android: textCursorDrawable do @null, który umieściłem w stylu editText. Gdy spróbowałem tego użyć, kolory się nie zmieniły.
źródło
Wow, jestem naprawdę spóźniony na tę imprezę, ale miała aktywność 17 dni temu. Szew musiałby rozważyć opublikowanie jakiej wersji Androida używamy do odpowiedzi, więc na razie ta odpowiedź działa z Androidem 2.1 i nowszym Przejdź do RES / WARTOŚCI / STYLE i dodaj poniższe wiersze kodu, a kursor będzie czarny
Będziesz potrzebował tego wiersza kodu w folderze RES / COLOR
Po co publikować tak późno? Przyjemnie byłoby rozważyć jakąś kategorię kategorii potwora, którym stał się Android!
źródło
Tutaj programowa wersja setCursorDrawableColor () @Jareda Rummlera przystosowana do pracy również na Androidzie 9 Pie.
źródło
java.lang.NoSuchFieldException: No field mDrawableForCursor
na Androida 9.to się nazywa
colorAccent
w Androidzie.przejdź do res -> wartości -> dodaj style.xml
jeśli nie istnieje.
źródło
editcolor.xml
android:textCursorDrawable="@drawable/editcolor"
W pliku XML ustaw kod
edittext
koloru koloru tłaźródło
Jedyną prawidłową odpowiedzią powinna być zmiana tematu działania:
<item name="colorAccent">#000000</item>
Nie powinieneś używaćandroid:textCursorDrawable
do,@null
ponieważ dotyczy to samego kursora, ale nie szpilki pod kursorem, jeśli chcesz przeciągnąć ten kursor. Rozwiązanie tematyczne jest najpoważniejsze.źródło
Innym prostym rozwiązaniem byłoby przejście do res> wartości> colors.xml w folderze projektu i edycja wartości akcentu kolorystycznego na preferowany kolor
Powyższy kod zmienia kursor na czarny.
źródło
Przejdź do styles.xml i zmień akcent kolorystyczny, a to wpłynie na kursor z pola edycyjnego
źródło
To nawet łatwiejsze niż to.
Działa to w ICS i nie tylko. Nie testowałem tego w innych wersjach.
źródło
czy chcesz określonego koloru, musisz użyć AppCompatEditText, a następnie ustawić backround na null
pracuje dla mnie
Zobacz tę treść
źródło
Użyj tego
źródło
Zwróć uwagę na swój kolor Procent w bieżącym działaniu / fragmencie / oknie dialogowym zdefiniowanym w Style ...;) kolor kursora jest z nim powiązany.
źródło
zmień kolor colorAccent w styles.xm, to proste
źródło
Jeśli używasz stylu i implementacji
zamień jego wartość na inną niż kolor / biały.
źródło
możesz użyć kodu poniżej w układzie
źródło
Po długim czasie spędzonym na wypróbowywaniu wszystkich tych technik w oknie dialogowym, w końcu wpadłem na ten pomysł: dołącz temat do samego okna dialogowego, a nie do TextInputLayout.
wewnątrz na Utwórz:
myDialog klasy publicznej rozszerza Dialog {
Twoje zdrowie :)
źródło