Jetpack Compose KeyboardOptions

619 阅读1分钟

记录 Compose 键盘相关操作

设置键盘类型

WX20230306-112838@2x.png

焦点移动到下个输入框的方法:

  • ImeAction.Next
@Composable
fun EditNumberField(
   //...
) {
   TextField(
       // 设置了输入数字,imeAction 设置为下一步
       keyboardOptions = KeyboardOptions.Default.copy(
           keyboardType = KeyboardType.Number,
           imeAction = ImeAction.Next
       )
   )
}
  • FocusRequester
TODO

LocalFocusManager 接口用于控制 Compose 中的焦点。您可以使用该变量将焦点移到文本框,以及从文本框清除焦点。

import androidx.compose.ui.platform.LocalFocusManager

val focusManager = LocalFocusManager.current

focusManager.clearFocus() 函数会从获得焦点的组件中清除焦点;(即隐藏输入法键盘) focusManager.moveFocus() 函数将焦点沿指定方向移动

  • 使用 KeyboardActions 类来实现将焦点移到下一个文本框并关闭键盘的功能
// 监听下一步按钮事件
EditNumberField(
   //...
   keyboardActions = KeyboardActions(
       onNext = { }
   ),
   //...
)
// 监听输入完成按钮事件
EditNumberField(
   //...
   keyboardActions = KeyboardActions(
       onDone = { }
   ),
   //...
)