Gor*_*not 6 android android-jetpack-compose
当WebView使用 Jetpack Compose创建一个非常简单的包装器时,应用程序在我输入任何文本时崩溃。这是一个错误,还是我在做一些愚蠢的事情?相关代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
WebViewC()
}
}
}
@Composable
fun WebViewC() {
return AndroidView(viewBlock = { context ->
WebView(context).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
return false
}
}
loadUrl("https://google.com")
}
})
}
Run Code Online (Sandbox Code Playgroud)
迷恋;撞车;崩溃:
E/MessageQueue-JNI: java.lang.IllegalStateException: KeyEvent can't be processed because this key input node is not active.
at androidx.compose.ui.input.key.KeyInputModifier.processKeyInput(KeyInputModifier.kt:62)
at androidx.compose.ui.platform.AndroidComposeView.sendKeyEvent(AndroidComposeView.kt:173)
at androidx.compose.ui.platform.AndroidComposeView.dispatchKeyEvent(AndroidComposeView.kt:177)
Run Code Online (Sandbox Code Playgroud)
Vov*_*huk 10
如果你想动态更改 url,你还需要添加更新方法。
@SuppressLint("SetJavaScriptEnabled")
@Composable
fun WebPageScreen(urlToRender: String) {
AndroidView(factory = {
WebView(it).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
webViewClient = WebViewClient()
loadUrl(urlToRender)
}
}, update = {
it.loadUrl(urlToRender)
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1986 次 |
| 最近记录: |