Tidak perlu menggunakan perpustakaan pihak ketiga karena Google memperkenalkan TextInputLayout
sebagai bagian dari design-support-library
.
Berikut contoh dasar:
Tata letak
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your name" />
</android.support.design.widget.TextInputLayout>
Catatan: Dengan menetapkan app:errorEnabled="true"
sebagai atribut, atribut TextInputLayout
itu tidak akan mengubah ukurannya setelah kesalahan ditampilkan - jadi pada dasarnya memblokir ruang.
Kode
Dalam rangka untuk menunjukkan kesalahan di bawah EditText
Anda hanya perlu panggilan #setError
pada TextInputLayout
(TIDAK pada anak EditText
):
TextInputLayout til = (TextInputLayout) findViewById(R.id.text_input_layout);
til.setError("You need to enter a name");
Hasil
Untuk menyembunyikan kesalahan dan mengatur ulang warna cukup panggil til.setError(null)
.
Catatan
Untuk menggunakan, TextInputLayout
Anda harus menambahkan yang berikut ke build.gradle
dependensi Anda :
dependencies {
compile 'com.android.support:design:25.1.0'
}
Pengaturan warna khusus
Secara default garis EditText
akan berwarna merah. Jika Anda perlu menampilkan warna berbeda, Anda dapat menggunakan kode berikut segera setelah Anda menelepon setError
.
editText.getBackground().setColorFilter(getResources().getColor(R.color.red_500_primary), PorterDuff.Mode.SRC_ATOP);
Untuk menghapusnya cukup panggil clearColorFilter
fungsi, seperti ini:
editText.getBackground().clearColorFilter();
EditText
. Kemungkinan besar, Anda akan membutuhkan sesuatu yang membungkusEditText
atau menambahnya. Lihat github.com/rengwuxian/MaterialEditText .