Saya memiliki widget EditText dalam tampilan saya. Ketika pengguna memilih widget EditText, saya menampilkan beberapa instruksi dan keyboard lunak muncul.
Saya menggunakan OnEditorActionListener untuk mendeteksi ketika pengguna telah menyelesaikan entri teks dan saya menutup keyboard, menyembunyikan instruksi dan melakukan beberapa tindakan.
Masalah saya adalah ketika pengguna menutup keyboard dengan menekan tombol BACK. OS menutup keyboard, tetapi instruksi saya (yang perlu saya sembunyikan) masih terlihat.
Saya sudah mencoba mengesampingkan OnKeyDown, tetapi sepertinya itu tidak dipanggil saat tombol KEMBALI digunakan untuk menutup keyboard.
Saya sudah mencoba menyetel OnKeyListener di widget EditText, tetapi tampaknya itu juga tidak dipanggil.
Bagaimana saya bisa mendeteksi ketika soft keyboard sedang ditutup?
onKeyPreIme
? Atau adakah alasan khusus untuk tidak melakukannya?SearchView
, silakan lihat stackoverflow.com/questions/9629313/…Jay, solusimu bagus! terima kasih :)
sumber
KeyEvent.ACTION_UP
juga?android.support.v7.widget.AppCompatEditText
untuk pewarnaan.AppCompatEditText
untuk androidxSaya membuat sedikit perubahan pada solusi Jay dengan memanggil super.onKeyPreIme ():
Solusi luar biasa, Jay, +1!
sumber
Berikut adalah EditText kustom saya untuk mendeteksi apakah keyboard ditampilkan atau tidak
sumber
Sekarang tahun 2019 ...
Jadi saya membuat solusi yang lebih rapi dengan Kotlin
1. Buat fungsi ekstensi:
2. Di mana toggle listener berada:
3. Gunakan dalam Aktivitas apa pun sesederhana ini :
sumber
Cukup buat kelas yang memperluas Edittext dan gunakan teks editan itu dalam kode Anda, Anda harus mengganti metode berikut dalam teks editan khusus:
sumber
Inilah solusi dengan pendengar utama. Saya tidak tahu mengapa ini berfungsi tetapi OnKeyListener berfungsi jika Anda hanya mengganti onKeyPreIme pada EditText kustom Anda.
SomeClass.java
CustomEditText.java
sumber
Menggunakan jawaban @ olivier_sdg, tetapi dikonversi ke Kotlin:
Pemakaian:
sumber
Bagi siapa pun yang ingin melakukan hal yang sama di Xamarin, saya telah menerjemahkan beberapa jawaban teratas karena sedikit berbeda. Saya membuat intinya di sini tetapi meringkas, Anda membuat EditText kustom dan menimpa
OnKeyPreIme
seperti:... dan kemudian dalam tampilan ...
sumber
hideSoftInputFromWindow
mengembalikan nilai true saat keyboard ditutup, gunakan nilainya untuk mendeteksi penutupan keyboard di androidsumber