簡體   English   中英

如何從 Jetpack Compose TextField 獲取輸入連接?

[英]How can I get input connection from Jetpack Compose TextField?

我想在焦點更改時捕獲TextFieldInputConnection ,該方法是EditText中的onCreateInputConnection 有沒有這樣的方法? 如何在不使用AndroidView的情況下實現它?

在這一點上,這幾乎是不可能的。 恐怕您必須包裝編輯文本。 這是因為LocalTextInputServicestaticCompositionLocalOf並且會導致所有其他可組合重新組合並更改輸入服務。

這將需要您編寫自己的PlatformTextInputServiceTextInputService類的實現。

然后,您需要將實例提供給LocalTextInputService組合提供程序,例如:

class MyTextInputService : PlatformTextInputService {
   
}

class MyInputService : TextInputService(MyTextInputService()) {

}

@Composable
fun CustomInputServiceTextField(...){
    val inputService = remember { MyInputService() } 
    CompositionLocalProvider(LocalTextInputService provides inputService) {
        TextField(value = ..., onValueChange = ...)
    }
}

這只是一個想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM