JetPack Compose 通過按鈕顯示軟鍵盤

標(biāo)準(zhǔn)調(diào)用流程

// 以下代碼均在 @Composable 函數(shù)中

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

如果使用 focusRequester.captureFocus() 則不會有任何效果

requestFocuscaptureFocus的區(qū)別,就是多了一個 Captured 狀態(tài)

captureFocus一般用來保持焦點,且拒絕其他請求釋放焦點

比如,有個需求:
用戶填寫手機號出現(xiàn)格式錯誤,必須讓他填正確或者全刪了才能跳到下一個輸入的地方。

FocusRequester.kt

// 請求獲取焦點,與原生安卓一致
::requestFocus()
// 請求釋放焦點,與原生安卓一致
::freeFocus()
// 鎖定焦點
::captureFocus()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容