JetPack Compose 知识点

JetPack Compose 通过按钮显示软键盘

2022-03-09  本文已影响0人  小强开学前

标准调用流程

// 以下代码均在 @Composable 函数中

// 焦点请求器
val focusRequester = remember {
    FocusRequester()
}
// 为需要获取焦点的TextField添加此Modifier
BasicTextField(
    modifier = Modifier
        .fillMaxWidth()
        .focusRequester(focusRequester)
)
// 请求焦点
Button(onClick = {
    focusRequester.requestFocus()
    keyboard?.show()
})

如果使用 focusRequester.captureFocus() 则不会有任何效果

requestFocuscaptureFocus的区别,就是多了一个 Captured 状态

captureFocus一般用来保持焦点,且拒绝其他请求释放焦点

比如,有个需求:
用户填写手机号出现格式错误,必须让他填正确或者全删了才能跳到下一个输入的地方。

FocusRequester.kt

// 请求获取焦点,与原生安卓一致
::requestFocus()
// 请求释放焦点,与原生安卓一致
::freeFocus()
// 锁定焦点
::captureFocus()
上一篇下一篇

猜你喜欢

热点阅读