Google berkomitmen untuk mendorong terwujudnya keadilan rasial bagi komunitas Kulit Hitam. Lihat caranya.

Menangani visibilitas metode masukan

Saat fokus masukan masuk atau keluar dari kolom teks yang dapat diedit, Android akan menampilkan atau menyembunyikan metode masukan (seperti keyboard di layar) sebagaimana yang sesuai. Sistem juga akan membuat keputusan tentang cara UI Anda dan kolom teks muncul di atas metode masukan. Contohnya, saat ruang vertikal di layar dibatasi, kolom teks mungkin akan mengisi semua ruang di atas metode masukan tersebut. Di sebagian besar aplikasi, perilaku default inilah yang diperlukan.

Namun, dalam beberapa kasus, Anda mungkin perlu langsung mengontrol visibilitas metode masukan dan menentukan cara tata letak dimunculkan saat metode masukan terlihat. Tutorial ini menjelaskan cara mengontrol dan merespons visibilitas metode masukan.

Menampilkan metode masukan saat aktivitas dimulai

Meskipun Android memberikan fokus ke kolom teks pertama di tata letak Anda saat aktivitas dimulai, metode masukan tidak akan ditampilkan. Perilaku ini sesuai karena memasukkan teks mungkin bukanlah tugas utama dalam aktivitas. Namun, jika memasukkan teks merupakan tugas utama (seperti di layar login), Anda mungkin menginginkan agar metode masukan muncul secara default.

Untuk menampilkan metode masukan saat aktivitas dimulai, tambahkan atribut android:windowSoftInputMode ke elemen <activity> dengan nilai "stateVisible". Contoh:

    <application ... >
        <activity
            android:windowSoftInputMode="stateVisible" ... >
            ...
        </activity>
        ...
    </application>
    

Catatan: Jika perangkat pengguna memiliki keyboard hardware yang terpasang, metode masukan virtual tidak akan muncul.

Menampilkan metode masukan sesuai permintaan

Jika ada metode dalam siklus proses aktivitas di mana Anda ingin memastikan agar metode masukan terlihat, gunakan InputMethodManager untuk menampilkannya.

Contohnya, metode berikut mengambil View di mana pengguna harus mengetikkan sesuatu, memanggil requestFocus() untuk memberikan fokus, lalu showSoftInput() untuk membuka metode masukan:

Kotlin

    fun showSoftKeyboard(view: View) {
        if (view.requestFocus()) {
            val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
        }
    }
    

Java

    public void showSoftKeyboard(View view) {
        if (view.requestFocus()) {
            InputMethodManager imm = (InputMethodManager)
                    getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
        }
    }
    

Catatan: Setelah metode masukan terlihat, Anda sebaiknya tidak menyembunyikannya secara terprogram. Sistem akan menyembunyikan metode masukan saat pengguna menyelesaikan tugas di kolom teks atau pengguna dapat menyembunyikannya dengan kontrol sistem (seperti dengan tombol Kembali).

Menentukan cara UI Anda merespons

Saat metode masukan muncul di layar, cara ini akan mengurangi jumlah ruang yang tersedia untuk UI aplikasi Anda. Sistem akan membuat keputusan tentang caranya menyesuaikan bagian UI yang terlihat, tetapi mungkin belum berfungsi dengan benar. Guna memastikan perilaku terbaik untuk aplikasi Anda, tentukan cara sistem menampilkan UI Anda di ruang yang tersisa.

Untuk mendeklarasikan perlakuan pilihan Anda dalam aktivitas, gunakan atribut android:windowSoftInputMode dalam elemen <activity> manifes dengan salah satu nilai “adjust”.

Misalnya, untuk memastikan agar sistem mengubah ukuran tata letak Anda pada ruang yang tersedia, yang memastikan bahwa semua konten tata letak Anda dapat diakses (meskipun mungkin memerlukan scrolling), gunakan "adjustResize":

    <application ... >
        <activity
            android:windowSoftInputMode="adjustResize" ... >
            ...
        </activity>
        ...
    </application>
    

Anda dapat menggabungkan spesifikasi penyesuaian dengan spesifikasi visibilitas metode masukan awal dari atas:

        <activity
            android:windowSoftInputMode="stateVisible|adjustResize" ... >
            ...
        </activity>
    

Menentukan "adjustResize" penting jika UI Anda menyertakan kontrol yang mungkin perlu diakses pengguna segera setelah atau saat melakukan masukan teks. Misalnya, jika Anda menggunakan tata letak relatif untuk menempatkan panel tombol di bagian bawah layar, penggunaan "adjustResize" akan mengubah ukuran tata letak sehingga panel tombol muncul di atas metode masukan.