Ryosuke Yamada
03/27/2022, 10:43 AMSwipeRefresh
.
Simple example:
var isRefreshing by remember { mutableStateOf(false) }
var isLoaded by remember { mutableStateOf(false) }
SwipeRefresh(state = rememberSwipeRefreshState(isRefreshing),
onRefresh = { isRefreshing = true }) {
AndroidView(
factory = {
WebView(it).apply {
webViewClient = WebViewClient()
}
}
) { webView ->
if (!isLoaded) {
webView.loadUrl("<https://www.android.com/>")
isLoaded = true
}
if (isRefreshing) {
webView.reload()
isRefreshing = false
}
}
}
This does not work because SwipeRefresh
needs scrollable child. By adding verticalScroll
modifier to AndroidView, SwipeRefresh
works, but WebView gets infinite height and content does not rendered as expected.
Is there any way to notify legacy View's scroll events to parent Composable?Dmitry Strekha
03/27/2022, 11:52 AMAlbert Chang
03/27/2022, 1:01 PMRyosuke Yamada
03/27/2022, 1:59 PMNestedScrollDispatcher
.
I'll try to dispatch view's scroll event to NestedScrollDispatcher ...Ryosuke Yamada
03/27/2022, 2:28 PMSwipeRefreshLayout
over WebView seems to work fine, as far as I tried.