将XML WebView转换为@Composable

时间:2020-02-26 06:07:45

标签: android android-jetpack android-jetpack-compose

我想将WebView转换为@Composable。我正在寻找类似于SwiftUI's UIRepresentable的东西。

我看到有一个@GenerateView注释,但是, 1.与我想要的相反(将@Composable转换为xml) 2. @GenerateView似乎已经被抢走(我正在使用Dev05)。

2 个答案:

答案 0 :(得分:1)

我认为尚不支持该功能。但是您可以使用 jetpack compose 互操作传统视图。

@Composable
fun Browser(list: List<String>) {
    Column(modifier = Modifier.fillMaxSize()) { item ->
        AndroidView(
                modifier = Modifier.fillParentMaxWidth().height(50.dp),
                viewBlock = { context ->
                    WebView(context).apply {
                        layoutParams = ViewGroup.LayoutParams(
                                ViewGroup.LayoutParams.MATCH_PARENT,
                                ViewGroup.LayoutParams.MATCH_PARENT,
                        )
                    }
                })
    }
}

答案 1 :(得分:0)

我相信您应该使用WebComponent @Composable。这也是查看如何包装现有视图并将其转换为Composable的一个很好的例子。

来源-https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-compose-release/ui/ui-android-view/src/main/java/androidx/ui/androidview/WebComponent.kt