Saya mengalami masalah ini di mana saya menggunakan tema Holo Android pada proyek tablet. Namun, saya memiliki fragmen di layar yang memiliki latar belakang putih. Saya menambahkan EditText
komponen pada fragmen ini. Saya sudah mencoba mengganti tema dengan mengatur latar belakang sumber daya tema Holo.Light. Namun, kursor teks saya (karat) tetap putih dan karenanya, tidak terlihat di layar (saya bisa melihatnya samar-samar di bidang edittext ..).
Adakah yang tahu bagaimana saya bisa mendapatkan EditText untuk menggunakan warna kursor yang lebih gelap? Saya sudah mencoba mengatur gaya EditText "@android:style/Widget.Holo.Light.EditText"
tanpa hasil positif.
sumber
target
> 3,2 dalam manifes Anda dapat menggunakannya dan itu akan diabaikan untuk versi yang lebih rendahDi Tata Letak
Kemudian buat drawalble xml: color_cursor
Anda memiliki kursor warna putih pada properti EditText.
sumber
Tampaknya semua jawaban berputar-putar.
Di Anda
EditText
, gunakan properti:dan tambahkan drawable
black_cursor.xml
ke sumber daya Anda, sebagai berikut:Ini juga cara untuk membuat kursor yang lebih beragam, jika Anda perlu.
sumber
Ada cara baru untuk mengubah warna kursor di
Appcompact
v21 terbaru.Cukup ubah
colorAccent
gaya seperti ini:Kemudian terapkan gaya ini pada tema atau aktivitas aplikasi Anda.
Pembaruan : cara ini hanya berfungsi pada API 21+Pembaruan 2 : Saya tidak yakin versi Android minimum yang dapat bekerja.
Diuji oleh versi android:
sumber
colorAccent
perubahan misalnya garis di bagian bawahEditText
tetapi tidak menyentuh warna kursor yang sebenarnya. Oh, dan tidak ada "v21" lagi tentu saja.Saya menemukan jawabannya :)
Saya telah mengatur gaya editText Tema ke:
Lalu saya telah menggunakan drawable berikut untuk mengatur kursor:
`
`
android: textCursorDrawable adalah kuncinya di sini.
sumber
android:editTextStyle
, tetapi mengubahnya untukeditTextStyle
memperbaikinya. Lihat stackoverflow.com/a/34010235/6744473Bagi siapa pun yang perlu mengatur
EditText
warna kursor secara dinamis, di bawah ini Anda akan menemukan dua cara untuk mencapai ini.Pertama, buat kursor Anda dapat digambar:
Setel id sumber daya yang dapat ditarik kursor ke drawable yang Anda buat (https://github.com/android/platform_frameworks_base/blob/kitkat-release/core/java/android/widget/TextView.java#L562-564">source)) :
Untuk hanya mengubah warna yang dapat ditarik kursor default, Anda dapat menggunakan metode berikut:
sumber
AppCompatEditText
sudahsetSupportBackgroundTintList
, jadi bukankah cukup sederhana untuk menambahkan sesuatu sepertisetSupportCursorTintList
?Terlambat ke pesta, Inilah jawaban saya,
Ini untuk orang-orang yang tidak ingin mengubah
colorAccent
tema orang tua mereka, tetapi ingin mengubahEditText
atribut!Contoh:
Sekarang buat drawable (
edit_text_background
) tambahkan xml sumber daya untuk latar belakang! Anda dapat menyesuaikan sesuai keinginan!Sekarang setelah Anda mengatur gaya ini dalam tema Aktivitas Anda.
Contoh:
Di Aktivitas Anda, Anda memiliki tema, atur
editText
tema khusus ini ke situ.sumber
<item name="editTextStyle">@style/AppTheme.EditText</item> // inculude this
tidak berpengaruhandroid:editTextSteyle
, attr benar adalaheditTextStyle
<item name="android:textCursorDrawable">@color/white</item>
tidak berfungsiKemudian buat drawalble xml:
color_cursor
sumber
Bagi saya, saya memodifikasi AppTheme dan nilai colors.xml
Berikut adalah colors.xml
Saya mengeluarkan atribut android: textCursorDrawable ke @null yang saya tempatkan di dalam gaya editText. Ketika saya mencoba menggunakan ini, warnanya tidak akan berubah.
sumber
Wow, saya benar-benar terlambat ke pesta ini, tetapi sudah beraktifitas 17 hari yang lalu. Kita perlu mempertimbangkan untuk memposting versi Android apa yang kita gunakan untuk jawaban sehingga mulai sekarang jawaban ini bekerja dengan Android 2.1 dan di atasnya. Pergi ke RES / NILAI / GAYA dan tambahkan baris kode di bawah ini dan kursor Anda akan menjadi hitam
Anda akan memerlukan baris kode ini di folder RES / COLOR Anda
Mengapa memposting ini terlambat? Mungkin menyenangkan untuk mempertimbangkan beberapa bentuk kategori untuk monster Android berkepala banyak telah menjadi!
sumber
Di sini versi setCursorDrawableColor () terprogram @Jared Rummler diadaptasi untuk bekerja juga pada Android 9 Pie.
sumber
java.lang.NoSuchFieldException: No field mDrawableForCursor
di Android 9.yang disebut
colorAccent
di Android.pergi ke res -> values -> styles.xml add
jika tidak ada.
sumber
editcolor.xml
android:textCursorDrawable="@drawable/editcolor"
Dalam file xml atur kode
edittext
warna warna latar belakangsumber
Satu-satunya jawaban yang valid adalah mengubah tema aktivitas:
<item name="colorAccent">#000000</item>
Anda tidak boleh menggunakanandroid:textCursorDrawable
to@null
karena ini hanya menyangkut kursor itu sendiri tetapi bukan pin di bawah kursor jika Anda ingin menyeret kursor itu. Solusi bertema adalah yang paling serius.sumber
Solusi sederhana lain adalah dengan pergi ke res> values> colors.xml di folder proyek Anda dan edit nilai aksen warna ke warna yang Anda sukai
Kode di atas mengubah kursor Anda menjadi hitam.
sumber
Pergi ke styles.xml dan ubah aksen warna dan ini akan memengaruhi kursor dari kotak edittext
sumber
Bahkan lebih mudah dari itu.
Ini bekerja di ICS dan seterusnya. Saya belum mengujinya di versi lain.
sumber
Jika Anda menginginkan warna tertentu, Anda harus menggunakan AppCompatEditText, lalu backround set null
bekerja untukku
Lihat intinya
sumber
Gunakan ini
sumber
Perhatikan colorAccent Anda di Activity / fragment / Dialog Anda saat ini, didefinisikan dalam Styles ...;) warna kursor terkait dengannya.
sumber
ubah warna colorAccent di styles.xm, itu sederhana
sumber
Jika menggunakan gaya dan implementasikan
ganti nilainya yang lain yaitu warna / putih.
sumber
Anda dapat menggunakan kode di bawah ini dalam tata letak
sumber
Setelah menghabiskan banyak waktu mencoba semua teknik ini dalam Dialog, saya akhirnya memiliki ide ini: melampirkan tema ke Dialog itu sendiri dan bukan ke TextInputLayout.
di dalam onCreate:
kelas publik myDialog memperluas Dialog {
Bersulang :)
sumber