美文网首页JetPack Compose 知识点
JetPack Compose 通过按钮显示软键盘

JetPack Compose 通过按钮显示软键盘

作者: 小强开学前 | 来源:发表于2022-03-09 16:52 被阅读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()
    

    相关文章

      网友评论

        本文标题:JetPack Compose 通过按钮显示软键盘

        本文链接:https://www.haomeiwen.com/subject/lbgtdrtx.html