Saya mengalami ini juga selama pencarian saya, tetapi bertanya-tanya apakah Android menyediakan metode asli.
xsorifc28
1
Ini membuat kami berpikir bahwa ada yang salah dengan Android. Ada beberapa celah yang hilang pada API untuk Desain Material. Contoh lainnya adalah Tombol Tindakan Mengambang.
motobói
Jawaban:
4
Anda perlu menambahkan yang berikut ini ke file modul build.gradle Anda:
Wow terima kasih! Saya akan memeriksa ini dan memberi tahu Anda bagaimana kelanjutannya!
AdamMc331
2
Yang ketiga adalah apa yang saya cari. Saya menemukan TextInputLayout, tetapi tidak dapat menemukan contoh yang baik (mungkin mencari semua istilah yang salah). Terima kasih!
AdamMc331
18
Pustaka dukungan Android bisa diimpor dalam gradle dalam dependensi:
compile 'com.android.support:design:22.2.0'
Ini harus disertakan dalam GradlePlease! Dan sebagai contoh untuk menggunakannya:
Saya mendapatkan Kesalahan: (1) "Atribut" warna "telah ditentukan" pada sinkronisasi gradle, mungkin karena appcompat-v7. Saya tidak bisa menyingkirkannya. Ada saran?
mdzeko
MaterialEditText belum mendefinisikan atribut bernama "color", jadi pasti ada yang salah di tempat lain.
rengwuxian
9
Impor Pustaka Dukungan, Dalam file build.gradle proyek Anda, tambahkan baris berikut dalam dependensi proyek:
Kemudian, panggil setHint pada TextInputLayout tepat setelah panggilan setContentView karena, untuk menganimasikan label mengambang, Anda hanya perlu menyetel petunjuk, menggunakan metode setHint.
Setidaknya menggunakan 23.1.1, Anda tidak perlu menggunakan panggilan eksplisit ke setHint(). Ia bekerja dengan petunjuk yang ditetapkan di EditTextdalam layout xml.
https://github.com/thebnich/FloatingHintEditText berfungsi dengan appcompat-v7 v21.0.0, tetapi karena v21.0.0 tidak mendukung warna aksen dengan subkelas EditText, garis bawah FloatingHintEditTextakan menjadi hitam pekat atau putih default. Juga padding tidak dioptimalkan untuk gaya Material EditText, jadi Anda mungkin perlu menyesuaikannya.
Terima kasih. Saya menduga google juga belum menyediakan api untuk membuat peringatan teks edit bergaya material, seperti di google.com/design/spec/components/… Maaf untuk pertanyaan amatir, saya mencoba beradaptasi dengan desain material karena saya bisa menggunakan api / perpustakaan google dan mencoba mencari tahu semua yang telah disediakan vs perpustakaan luar. Terima kasih lagi!
Untuk cara yang lebih mudah menggunakan InputTextLayout, saya telah membuat pustaka ini yang memotong kode XML Anda menjadi kurang dari setengahnya, dan juga memberi Anda kemampuan untuk mengatur pesan kesalahan serta pesan petunjuk dan cara mudah untuk melakukannya. validasi.
https://github.com/TeleClinic/SmartEditText
Kemudian Anda dapat melakukan sesuatu seperti ini:
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/emailSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Email"app:setMandatoryErrorMsg="Mandatory field"app:setRegexErrorMsg="Wrong email format"app:setRegexType="EMAIL_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/passwordSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Password"app:setMandatoryErrorMsg="Mandatory field"app:setPasswordField="true"app:setRegexErrorMsg="Weak password"app:setRegexType="MEDIUM_PASSWORD_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/ageSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Age"app:setMandatory="false"app:setRegexErrorMsg="Is that really your age :D?"app:setRegexString=".*\\d.*"/>
Jawaban:
Anda perlu menambahkan yang berikut ini ke file modul build.gradle Anda:
Dan gunakan com.google.android.material.textfield.TextInputLayout di XML Anda:
sumber
Petunjuk mengambang EditText:
Tambahkan di bawah ketergantungan di gradle:
Dalam tata letak:
sumber
22.2.0
implementation 'com.google.android.material:material:1.0.0-rc01'
.Ya, mulai 29 Mei 2015, fungsionalitas ini sekarang tersedia di Pustaka Dukungan Desain Android
Pustaka ini menyertakan dukungan untuk
sumber
Pustaka dukungan Android bisa diimpor dalam gradle dalam dependensi:
Ini harus disertakan dalam GradlePlease! Dan sebagai contoh untuk menggunakannya:
Btw, editor mungkin tidak memahami bahwa AutoCompleteTextView diizinkan dalam TextInputLayout.
sumber
Android belum menyediakan metode asli. Juga AppCompat.
Coba pustaka ini: https://github.com/rengwuxian/MaterialEditText
Ini mungkin yang Anda inginkan.
sumber
Impor Pustaka Dukungan, Dalam file build.gradle proyek Anda, tambahkan baris berikut dalam dependensi proyek:
Gunakan TextInputLayout berikut di Layout UI Anda:
Kemudian, panggil setHint pada TextInputLayout tepat setelah panggilan setContentView karena, untuk menganimasikan label mengambang, Anda hanya perlu menyetel petunjuk, menggunakan metode setHint.
sumber
setHint()
. Ia bekerja dengan petunjuk yang ditetapkan diEditText
dalam layout xml.Saran @ andruboy tentang https://gist.github.com/chrisbanes/11247418 mungkin adalah pilihan terbaik Anda.
https://github.com/thebnich/FloatingHintEditText berfungsi dengan appcompat-v7 v21.0.0, tetapi karena v21.0.0 tidak mendukung warna aksen dengan subkelas
EditText
, garis bawahFloatingHintEditText
akan menjadi hitam pekat atau putih default. Juga padding tidak dioptimalkan untuk gaya MaterialEditText
, jadi Anda mungkin perlu menyesuaikannya.sumber
Tidak, tidak. Saya mengharapkan ini di rilis api yang akan datang, tetapi untuk saat ini kami terjebak dengan EditText. Pilihan lainnya adalah pustaka ini:
https://github.com/marvinlabs/android-floatinglabel-widgets
sumber
Untuk cara yang lebih mudah menggunakan InputTextLayout, saya telah membuat pustaka ini yang memotong kode XML Anda menjadi kurang dari setengahnya, dan juga memberi Anda kemampuan untuk mengatur pesan kesalahan serta pesan petunjuk dan cara mudah untuk melakukannya. validasi. https://github.com/TeleClinic/SmartEditText
Cukup tambahkan
Kemudian Anda dapat melakukan sesuatu seperti ini:
sumber
Coba cara ini
untuk referensi lebih lanjut klik di sini
sumber
Gunakan yang
TextInputLayout
disediakan oleh Material Components Library :sumber