JetPack Compose 通过按钮显示软键盘

标准调用流程

// 以下代码均在 @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()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容