Bantalan teks kesalahan TextInputLayout

Saya menggunakan TextInputLayout dengan AppCompatEditText yang memiliki latar belakang berbasis bentuk xml khusus untuk AppCompatEditText. Setiap kali saya menetapkan beberapa kesalahan, baris kesalahan dimulai dari awal tata letak. Apakah ada cara untuk memberi bantalan pada baris kesalahan itu.

masukkan deskripsi gambar di sini


person BST Kaal    schedule 21.01.2016    source sumber
comment
lihat stackoverflow.com/questions/32609710/   -  person sasikumar    schedule 21.01.2016
comment
Bisakah Anda memperbarui pertanyaan ini dengan kode yang Anda coba?   -  person Kae10    schedule 21.01.2016
comment
Menggunakan setError(null)   -  person BST Kaal    schedule 21.01.2016
comment
Hapus gambar latar belakang ke EditText itu memecahkan masalah Anda gambar latar belakang ke EditText Buat masalah ini   -  person Mahesh Suthar    schedule 17.02.2016


Jawaban (3)


Anda dapat mereferensikan kesalahan TextView dengan menggunakan:

TextView textView = (TextView) inputLayout.findViewById(android.support.design.R.id
            .textinput_error);

Kemudian Anda bisa mendapatkan parameter tata letaknya untuk digunakan.

person Boris Kozyrev    schedule 31.05.2017
comment
peretasan berisiko itu berisiko. pada saat yang sama, menurut saya id tidak akan berubah dalam waktu dekat - person Aba; 20.05.2018
comment
Ingatlah bahwa tampilan teks kesalahan dibuat hanya ketika kesalahan ditampilkan, jadi Anda perlu mengubah parameter setelah Anda menampilkan kesalahan di TextInputLayout Anda. - person Almighty; 22.05.2019

Saya berjuang untuk menyelesaikan ini dan inilah yang berhasil bagi saya:

Menghapus padding pada induk dari tampilan teks kesalahan saya

Menggunakan solusi ini Saya dapat menemukan tampilan teks kesalahan (karena saya perlu menambahkan ikon ke dalamnya) tetapi tidak dapat menghilangkannya dari padding, jadi setelah beberapa kali mencoba saya menyadari bahwa TextInputLayout memiliki 2 anak jadi menghapus padding dari anak kedua berhasil dan untuk memastikan, saya menghapusnya juga dari yang pertama

Dengan menggunakan ekstensi Kotlin saya menemukan solusi yang bersih

/**
 * TextInputLayout
 */
fun TextInputLayout.removePadding() {
    for (i in 0 until this.childCount) {
        this.getChildAt(i).setPadding(0)
    }
}

Anda juga dapat melakukannya di Java menggunakan logika yang sama.

masukkan deskripsi gambar di sini

person einschneidend    schedule 13.05.2021

person    schedule
comment
untuk Inner EditText Jangan Gunakan marginLeft dan marginRight - person Mallikarjuna; 05.03.2017