小编bha*_*h v的帖子

java.lang.IllegalStateException:指定的子级已经有父级。您必须首先在 jetpack compose 中对子级的父级调用 removeView()

我有一个带有一个 URL 的 Web 视图,每当它在 Web 视图中重定向时,我都会使用具有新标题的新 URL 再次加载相同的可组合项,因为重定向发生得如此之快,它发生在实际可组合项完全组成之前,因此它崩溃了java.lang.IllegalStateException:指定的子级已经有父级。您必须首先对子级的父级调用removeView()。我目前正在使用 ram Costa 的 compose 目标库

navigator.value?.navigate(direction = MenuViewDestination,onlyIfResumed = true)
Run Code Online (Sandbox Code Playgroud)

,我之前也使用过 compose 提供的导航,在这两种情况下我都面临着同样的问题,如果我仅使用恢复 true 进行导航,则页面由于某种原因不会自行导航,并且我无法按原样处理异常发生在内部。这里我附加了菜单可组合项中使用的可组合项来加载 URL,

/* Adding custom accompanist WebView*/
@SuppressLint("SetJavaScriptEnabled")
@Composable
fun LoadMenuWebView(mainViewModel: MainViewModel, webViewModel: MenuWebViewModel, url: String?) {
    Timber.i("LoadWebView from menu $url")
    val context = LocalContext.current
    var extraHeaders: Map<String, String?>?
    webViewModel.menuWebViewState.value = url?.let {
        rememberWebViewState(
            it
        )
    }
    mainViewModel.currentWebViewClient.value = remember {
        getWebViewClient(
            context,
            mainViewModel.backEnabled,
            mainViewModel.progressVisible,
            mainViewModel.cookieManager,
            mainViewModel
        )
    }
    val state by remember { webViewModel.menuWebViewState }
    val …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception android-jetpack-navigation android-jetpack-compose

3
推荐指数
1
解决办法
1557
查看次数