Dengan mengacu pada yang baru TextInputLayout
dirilis oleh Google, bagaimana cara mengubah warna teks label mengambang?
Pengaturan colorControlNormal
, colorControlActivated
, colorControlHighLight
dalam gaya tidak membantu.
Inilah yang saya miliki sekarang:
colorAccent
? Saya mengubah gaya kustomcolorAccent
menjadi hitam dan garis masih akan mencerminkan apa yang saya miliki untukcolorControlNormal
gaya utama.Jawaban:
Coba Kode Di Bawah Ini Berfungsi Dalam Keadaan Normal
Dalam Styles Folder Kode TextLabel
Setel ke Tema Utama Aplikasi, Ini Bekerja Hanya Sorot Keadaan Saja
Memperbarui:
Larutan
Memperbarui:
Apakah Anda menggunakan Perpustakaan Komponen Bahan
Anda dapat menambahkan baris di bawah ini ke tema utama Anda
atau Anda ingin warna yang berbeda dalam keadaan noraml dan keadaan diaktifkan dan dengan kustomisasi ikuti kode di bawah ini
Tambahkan baris di bawah ini ke tema utama Anda atau Anda dapat mengatur style ke textinputlayout di xml Anda
sumber
android.view.InflateException: Error inflating class TextView
android:theme
gaya ini padaTextInputLayout
hasilInflateException
crash pada ASUS Zenphones (dan mungkin perangkat lain).ThemeOverlay.AppCompat.Light
membantu menyelesaikan macet pada ASUS Zenphone (@friederbluemle)sumber
android:textColorHint="@color/gray" //support 23.0.0
membuat warna teks isyarat saya terlihat (warna teks isyarat itu hitam secara default terlepas dari warna teks isyarat yang saya tetapkan dan jika latar belakangnya hitam, teks tersebut akan disembunyikanTemukan jawabannya, gunakan
android.support.design:hintTextAppearance
atribut untuk mengatur tampilan label apung Anda sendiri.Contoh:
sumber
Namespace 'android.support.design' not bound
. Ada saran?compile 'com.android.support:design:23.1.1'
file gradle aplikasi AndaAnda tidak perlu menggunakan
android:theme="@style/TextInputLayoutTheme"
untuk mengubah warna label mengambang, karena itu akan mempengaruhi keseluruhan tema untuk TextView kecil yang digunakan sebagai label. Sebagai gantinya, Anda dapat menggunakanapp:hintTextAppearance="@style/TextInputLayout.HintText"
tempat:Beritahu saya jika solusinya bekerja :-)
sumber
Dengan pustaka Komponen Bahan, Anda dapat menyesuaikan
TextInputLayout
warna teks petunjuk menggunakan (memerlukan versi 1.1.0)Dalam tata letak:
app:hintTextColor
atribut: warna label ketika diciutkan dan bidang teks aktifandroid:textColorHint
atribut: warna label di semua negara bagian bidang teks lainnya (seperti istirahat dan dinonaktifkan)Widget.MaterialComponents.TextInputLayout.*
:Selector default untuk
android:textColorHint
adalah:sumber
Ok, jadi, saya menemukan jawaban ini sangat membantu dan terima kasih kepada semua orang yang berkontribusi. Hanya untuk menambahkan sesuatu. Jawaban yang diterima memang jawaban yang benar ... TAPI ... dalam kasus saya, saya ingin menerapkan pesan kesalahan di bawah
EditText
widget denganapp:errorEnabled="true"
dan satu baris ini membuat hidup saya sulit. sepertinya ini mengesampingkan tema yang saya pilihandroid.support.design.widget.TextInputLayout
, yang memiliki warna teks berbeda yang ditentukan olehandroid:textColorPrimary
.Pada akhirnya saya menerapkan warna teks langsung ke
EditText
widget. Kode saya terlihat seperti ini:styles.xml
Dan widget saya:
Sekarang ini menampilkan warna teks hitam, bukan
textColorPrimary
putih.sumber
Saya sarankan Anda membuat tema gaya untuk TextInputLayout dan hanya mengubah warna aksen. Tetapkan orang tua ke tema basis aplikasi Anda:
sumber
Dalam versi terbaru dari perpustakaan dukungan (23.0.0+),
TextInputLayout
ambil atribut berikut dalam XML untuk mengedit warna label mengambang:android:textColorHint="@color/white"
sumber
Alih-alih Brahmam Yamani jawaban saya lebih suka menggunakan Widget.Design.TextInputLayout sebagai orangtua. Itu memastikan, bahwa semua item yang diperlukan ada, bahkan jika tidak semua item ditimpa. Dalam jawaban Yamanis, aplikasi akan macet dengan sumber daya yang tidak terselesaikan, jika setErrorEnabled (true) dipanggil.
Cukup ubah gaya menjadi yang berikut:
sumber
Dalam kasus saya, saya menambahkan ini "
app:hintTextAppearance="@color/colorPrimaryDark"
di widget TextInputLayout saya.sumber
error: '#FFFFFF' is incompatible with attribute hintTextAppearance
Secara terprogram Anda dapat menggunakan:
Penjelasan:
Dapatkan nilai warna int dari sumber daya warna (cara menyajikan warna rgb yang digunakan oleh android). Saya menulis ColorEnabled, tetapi seharusnya, untuk jawaban ini, ColorHintExpanded & ColorViewCollapsed. Pokoknya ini adalah warna yang akan Anda lihat ketika petunjuk tampilan "TextInputLayout" dalam status Expanded atau Collapsed; Anda akan mengaturnya dengan menggunakan array berikutnya pada fungsi "setDefaultHintTextColor" tampilan. Referensi: Referensi untuk TextInputLayout - cari di halaman ini metode "setDefaultHintTextColor" untuk info lebih lanjut
Melihat ke dokumen di atas Anda dapat melihat bahwa fungsi mengatur warna untuk Diperluas & diciutkan petunjuk dengan menggunakan ColorStateList.
Dokumen ColorStateList
Untuk membuat ColorStateList, saya pertama kali membuat matriks dengan status yang saya inginkan, dalam kasus saya state_enabled & state_disabled (yang, dalam TextInputLayout, sama dengan Hint Expanded dan Hint Collapsed [Saya tidak ingat urutan lolnya, toh saya menemukannya) hanya melakukan tes]). Kemudian saya meneruskan ke konstruktor dari ColorStateList array dengan nilai-nilai int sumber daya warna, warna-warna ini memiliki korespondensi dengan matriks negara (setiap elemen dalam array warna sesuai dengan masing-masing array dalam keadaan matriks pada posisi yang sama). Jadi elemen pertama dari array warna akan digunakan sebagai warna untuk setiap negara dalam array pertama dari matriks state (dalam kasus kami array hanya memiliki 1 elemen: diaktifkan negara = petunjuk negara diperluas untuk TextInputLayut). Status hal terakhir memiliki nilai positif / negatif, dan Anda hanya memiliki nilai positif,
Semoga ini bisa membantu. Sampai jumpa memiliki coding yang bagus (:
sumber
Untuk mengubah warna petunjuk dan mengedit warna garis bawah teks: colorControlActivated
Untuk mengubah warna penghitung karakter: textColorSecondary
Untuk mengubah warna pesan kesalahan: colorControlNormal
Untuk mengubah warna tombol visibilitas kata sandi: colorForeground
Untuk info lebih lanjut tentang TextInputLayout, baca http://www.zoftino.com/android-textinputlayout-tutorial
sumber
Anda harus mengubah warna Anda di sini
sumber
Sekarang, cukup gunakan
colorAccent
dancolorPrimary
akan bekerja dengan sempurna.sumber
colorPrimary
di tema untuk mengatur petunjuk dan warna fokus garis bawah. Meskipun seharusnya ada penjelasan / kode untuk ditampilkan dalam jawaban iniSaya memecahkan masalah. Ini Layout :
Ini Gaya:
Anda harus menggunakan tema Anda dalam aplikasi:
sumber
untuk mengubah warna label teks ketika Anda berfokus padanya. yaitu mengetik di dalamnya. Anda harus menambahkan tentukan
Hanya sebuah catatan: Anda harus menambahkan semua implementasi ini ke tema utama Anda.
sumber
Ini Bekerja untuk saya ..... tambahkan warna petunjuk di TextInputLayout
sumber
Saya mencoba menggunakan android: textColorHint di android.support.design.widget.TextInputLayout berfungsi dengan baik.
sumber
tambahkan ini ke styles dan atur TextInputLayout Theam ke App2 dan itu akan berfungsi;)
sumber
res / values / styles.xml
sumber
Dapat digunakan
app:hintTextColor
jika Anda menggunakancom.google.android.material.textfield.TextInputLayout
, coba inisumber
Coba Kode Di Bawah Ini Berfungsi Dalam Keadaan Normal
Dalam Styles Folder Kode TextLabel
sumber
Dari dokumentasi:
Jadi saya menyalakan
android:hint
danapp:hintTextColor
menghidupkanTextInputLayout
, bukan menyalakan danTextInputEditText
berhasil.sumber
Karena Anda harus menambahkan
colorControlNormal
,colorControlActivated
,colorControlHighLight
item dengan tema aplikasi utama:sumber