Saya mendapat pertanyaan yang relatif sederhana. Saya memiliki aktivitas dengan banyak EditText di dalamnya. Saat saya membuka aktivitas, secara otomatis fokus ke EditText pertama dan menampilkan keyboard virtual.
Bagaimana cara mencegahnya?
Saya mendapat pertanyaan yang relatif sederhana. Saya memiliki aktivitas dengan banyak EditText di dalamnya. Saat saya membuka aktivitas, secara otomatis fokus ke EditText pertama dan menampilkan keyboard virtual.
Bagaimana cara mencegahnya?
Jawaban:
Gunakan atribut ini di tag tata letak Anda dalam file XML:
Seperti yang dilaporkan oleh anggota lain dalam komentar, ini tidak berfungsi,
ScrollView
oleh karena itu Anda perlu menambahkan atribut ini ke turunan utamaScrollView
.sumber
Anda dapat menambahkan ini ke aktivitas Manifes Android Anda:
sumber
android:windowSoftInputMode="stateHidden|adjustPan"
Saya memiliki beberapa implementasi yang dijelaskan di sini, tetapi sekarang saya telah menambahkan ke dalam
AndroidManifest.xml
untukActivity
properti saya :Saya rasa ini adalah cara yang mudah meskipun Anda sedang menggunakannya
fragments
.sumber
Jika Anda memiliki pandangan lain tentang aktivitas Anda seperti
ListView
, Anda juga dapat melakukan:di onResume () Anda untuk mengambil fokus dari
editText
.Saya tahu pertanyaan ini telah dijawab tetapi hanya memberikan solusi alternatif yang berhasil untuk saya :)
sumber
https://stackoverflow.com/a/11627976/5217837 Ini hampir benar:
Tetapi harus SOFT_INPUT_STATE_HIDDEN daripada SOFT_INPUT_STATE_ALWAYS_VISIBLE
sumber
Gunakan ini di kode Aktivitas Anda:
sumber
Saya mengalami masalah yang sama, bahkan saat berpindah tab, keyboard muncul secara otomatis dan tetap aktif, dengan Android 3.2.1 di Tablet. Gunakan metode berikut:
Di onCreate () dan di onPause () aktivitas untuk setiap EditText:
setEditTextFocus (myEditText, false);
Untuk setiap EditText, sebuah OnTouchListener:
Untuk masing-masing
EditText
diOnEditorActionListener
:Dan untuk masing-masing
EditText
dilayout xml
:Mungkin ada lebih banyak kemungkinan pengoptimalan kode.
sumber
sumber
Saya telah menemukan solusi sederhana ini yang berhasil untuk saya Tetapkan atribut ini di tata letak induk Anda:
Dan sekarang, saat aktivitas dimulai, tata letak utama ini akan mendapatkan fokus secara default.
Selain itu, kita bisa menghapus fokus dari tampilan turunan saat waktu proses dengan memberikan fokus ke layout utama lagi, seperti ini:
Semoga berhasil untuk Anda.
sumber
ini adalah solusi yang saya gunakan, bukan solusi terbaik tetapi bekerja dengan baik untuk saya
sumber
Menariknya, dokumentasi ini https://developer.android.com/training/keyboard-input/visibility.html menyatakan bahwa ketika aktivitas dimulai dan fokus diberikan ke bidang teks, keyboard lunak tidak ditampilkan (dan kemudian berlanjut ke menunjukkan kepada Anda bagaimana agar keyboard ditampilkan jika Anda ingin dengan beberapa kode).
Di Samsung Galaxy S5 saya, beginilah cara kerja aplikasi saya (tanpa entri manifes atau kode tertentu) - tanpa keyboard lunak. Namun pada AVD Lollipop, keyboard lembut ditampilkan - bertentangan dengan dokumen yang diberikan di atas.
Jika Anda mendapatkan perilaku ini saat menguji dalam AVD, Anda mungkin ingin menguji pada perangkat nyata untuk melihat apa yang terjadi.
sumber
Ini memiliki beberapa jawaban bagus di posting berikut: Hentikan EditText dari mendapatkan fokus saat memulai Aktivitas . Yang biasa saya gunakan adalah kode berikut oleh Morgan :
CATATAN: Item dummy harus DITEMPATKAN SEBELUM elemen yang dapat difokuskan.
Dan saya pikir itu harus bekerja dengan sempurna bahkan dengan ScrollView dan tidak memiliki masalah dengan aksesibilitas baik untuk ini.
sumber
Ini terjadi saat EditText Anda secara otomatis mendapatkan Fokus seperti saat Anda memulai aktivitas. Jadi satu cara mudah dan stabil untuk memperbaikinya, cukup dengan mengatur fokus awal ke tampilan lain, seperti Tombol dll.
Anda dapat melakukan ini dalam XML tata letak Anda, tidak perlu kode ..
sumber
Jawaban yang diterima tidak berfungsi untuk saya, itu sebabnya berikan jawaban solusi yang berfungsi, semoga bermanfaat!
Sekarang keyboard terbuka, nikmati :)
sumber
Bekerja dengan baik
sumber
Tambahkan kode di bawah ini ke bagian atas XML aktivitas Anda dan pastikan View berada di atas EditText
sumber
android:focusableInTouchMode="true"
Tambahkan baris di atas ke xml dari
EditText
atauTextInputLayout
yang memiliki fokus dan menyebabkansoftInputKeyboard
pop up.Ini memecahkan masalah bagi kami dan sekarang keyboard tidak muncul
sumber
search_edit_text = (EditText) findViewById (R.id.search_edit_text);
Ini berfungsi untuk saya, fragmen guys mungkin memiliki beberapa sintaks yang berbeda. INI BEKERJA UNTUK AKTIVITAS
sumber
Jika tampilan Anda memiliki EditText dan Listview, maka Keyboard akan terbuka secara default. Untuk menyembunyikan keyboard agar tidak muncul secara default lakukan hal berikut
Pastikan Anda meminta fokus pada tampilan daftar setelah mendapatkan tampilan untuk editText.
Misalnya
Jika Anda melakukannya, maka editText akan mendapatkan fokus dan keyboard akan muncul.
sumber