Android Academy · Pelajaran

Pilihan dan Tindakan Papan Kekunci

Jenis papan kekunci, tindakan IME dan fokus.

Pelajaran 4 daripada 413 langkah

Pilihan dan Tindakan Papan Kekunci ialah pelajaran Android Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Android Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Papan Kekunci yang Tepat untuk Tugas

Borang yang kemas memaparkan papan kekunci pada skrin yang betul: digit untuk telefon, kekunci @ untuk e-mel, dan butang "Seterusnya" untuk berpindah antara medan. Compose mengawal semua ini dengan KeyboardOptions dan KeyboardActions.

Dalam pelajaran ini, anda akan menetapkan jenis papan kekunci, tindakan IME dan mengurus fokus antara medan.

Memilih Jenis Papan Kekunci

Hantar KeyboardOptions kepada medan teks dan tetapkan keyboardType. Sistem kemudiannya memaparkan papan kekunci yang sesuai dengan data.

Nilai biasa: Text, Number, Email, Phone, Password.

var email by remember { mutableStateOf("") }

OutlinedTextField(
    value = email,
    onValueChange = { email = it },
    label = { Text("Email") },
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Email
    )
)

Papan Kekunci Nombor

Untuk kuantiti atau PIN, gunakan KeyboardType.Number. Gabungkannya dengan penapisan input supaya hanya digit diterima, seperti yang anda pelajari dalam pelajaran pengesahan.

var pin by remember { mutableStateOf("") }

OutlinedTextField(
    value = pin,
    onValueChange = { pin = it.filter { c -> c.isDigit() } },
    label = { Text("PIN") },
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Number
    )
)

Menyembunyikan Kata Laluan

Kata laluan patut disamarkan. Gunakan visualTransformation = PasswordVisualTransformation() bersama jenis papan kekunci kata laluan.

Keadaan masih menyimpan aksara sebenar; hanya paparannya yang disamarkan.

var password by remember { mutableStateOf("") }

OutlinedTextField(
    value = password,
    onValueChange = { password = it },
    label = { Text("Password") },
    visualTransformation = PasswordVisualTransformation(),
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Password
    )
)

Butang Tindakan IME

Kekunci di bahagian bawah kanan papan kekunci ialah tindakan IME. Tetapkannya dengan imeAction. Gunakan Next untuk bergerak ke medan seterusnya dan Done pada medan terakhir.

OutlinedTextField(
    value = name,
    onValueChange = { name = it },
    label = { Text("Name") },
    keyboardOptions = KeyboardOptions(
        imeAction = ImeAction.Next
    )
)

Memberi Respons kepada Tindakan IME

Untuk bertindak balas apabila pengguna mengetik butang itu, hantar KeyboardActions. Setiap tindakan (onNext, onDone, onSearch) ialah lambda yang anda laksanakan.

Di sini, menekan Done menyembunyikan papan kekunci.

val keyboard = LocalSoftwareKeyboardController.current

OutlinedTextField(
    value = text,
    onValueChange = { text = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { keyboard?.hide() }
    )
)

Memindahkan Fokus ke Medan Seterusnya

Untuk borang berbilang medan, butang Seterusnya patut melompat ke medan berikutnya. Gunakan LocalFocusManager dan panggil moveFocus.

val focusManager = LocalFocusManager.current

OutlinedTextField(
    value = email,
    onValueChange = { email = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),
    keyboardActions = KeyboardActions(
        onNext = { focusManager.moveFocus(FocusDirection.Down) }
    )
)

Mengosongkan Fokus apabila Selesai

Pada medan terakhir, mengosongkan fokus menutup papan kekunci dan menyahpilih medan. Panggil focusManager.clearFocus() dalam onDone.

OutlinedTextField(
    value = password,
    onValueChange = { password = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { focusManager.clearFocus() }
    )
)

Meminta Fokus Secara Terprogram

Kadang-kadang anda mahu medan difokuskan sebaik sahaja skrin muncul, seperti kotak carian. Lampirkan FocusRequester dan minta fokus dalam LaunchedEffect.

val focusRequester = remember { FocusRequester() }

LaunchedEffect(Unit) { focusRequester.requestFocus() }

OutlinedTextField(
    value = query,
    onValueChange = { query = it },
    modifier = Modifier.focusRequester(focusRequester),
    label = { Text("Search") }
)

Penggunaan Huruf Besar dan Pembetulan Automatik

KeyboardOptions turut mengawal capitalization dan autoCorrectEnabled. Gunakan huruf besar pada setiap perkataan untuk nama, atau matikan pembetulan automatik bagi nama pengguna supaya tidak diubah secara tidak wajar.

OutlinedTextField(
    value = fullName,
    onValueChange = { fullName = it },
    label = { Text("Full name") },
    keyboardOptions = KeyboardOptions(
        capitalization = KeyboardCapitalization.Words,
        autoCorrectEnabled = false
    )
)

Kotlin Tulen: Memilih Tindakan IME

Logik "Next untuk setiap medan kecuali yang terakhir, Done untuk medan terakhir" ialah Kotlin biasa. Di sini, kami memetakan kedudukan medan kepada label tindakan yang patut dipaparkan.

fun imeActionFor(index: Int, lastIndex: Int): String =
    if (index == lastIndex) "Done" else "Next"

fun main() {
    val fields = listOf("name", "email", "password")
    fields.forEachIndexed { i, field ->
        println("$field -> ${imeActionFor(i, fields.lastIndex)}")
    }
}

Semakan Pantas

Anda mahu butang di bahagian bawah kanan papan kekunci memaparkan "Next" dan, apabila diketuk, memindahkan fokus ke medan di bawahnya. Apakah dua perkara yang diperlukan?

Ringkasan

Kini anda boleh membina borang yang peka terhadap papan kekunci:

  • KeyboardOptions menetapkan keyboardType, imeAction, penggunaan huruf besar dan pembetulan automatik.
  • Samarkan kata laluan dengan PasswordVisualTransformation.
  • KeyboardActions memberi respons kepada Next/Done/Search.
  • LocalFocusManager memindahkan atau mengosongkan fokus; FocusRequester memfokuskan medan apabila diminta.

Dengan ini, lengkaplah kit pembinaan borang: input, keadaan, pengesahan dan papan kekunci. Anda sudah bersedia untuk membina borang Compose yang kemas dan mesra pengguna.

Percuma untuk bermula

Pelajari Kotlin dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
36
Pelajaran
152

Soalan Lazim

Adakah pelajaran “Pilihan dan Tindakan Papan Kekunci” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Android Academy, termasuk “Pilihan dan Tindakan Papan Kekunci”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pilihan dan Tindakan Papan Kekunci”?

Jenis papan kekunci, tindakan IME dan fokus. Anda berlatih Android Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Android Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Android Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Pilihan dan Tindakan Papan Kekunci” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. TextField dan Input Pengguna
  2. Mengurus Keadaan Borang
  3. Mengesahkan Input
  4. Pilihan dan Tindakan Papan Kekunci
← Kembali ke Android Academy