Prevent AndroidView being composed more than once in ItemScreen

This commit is contained in:
Shinokuni 2024-04-21 22:24:44 +02:00
parent 841b56e7e5
commit 45dc199ea2

View File

@ -79,6 +79,7 @@ class ItemScreen(
val snackbarHostState = remember { SnackbarHostState() } val snackbarHostState = remember { SnackbarHostState() }
var isScrollable by remember { mutableStateOf(true) } var isScrollable by remember { mutableStateOf(true) }
var refreshAndroidView by remember { mutableStateOf(true) }
// https://developer.android.com/develop/ui/compose/touch-input/pointer-input/scroll#parent-compose-child-view // https://developer.android.com/develop/ui/compose/touch-input/pointer-input/scroll#parent-compose-child-view
val bottomBarHeight = 64.dp val bottomBarHeight = 64.dp
@ -198,16 +199,20 @@ class ItemScreen(
} }
}, },
update = { nestedScrollView -> update = { nestedScrollView ->
val relativeLayout = if (refreshAndroidView) {
(nestedScrollView.children.toList()[0] as RelativeLayout) val relativeLayout =
val webView = relativeLayout.children.toList()[1] as ItemWebView (nestedScrollView.children.toList()[0] as RelativeLayout)
val webView = relativeLayout.children.toList()[1] as ItemWebView
webView.loadText( webView.loadText(
itemWithFeed = itemWithFeed, itemWithFeed = itemWithFeed,
accentColor = accentColor, accentColor = accentColor,
backgroundColor = backgroundColor, backgroundColor = backgroundColor,
onBackgroundColor = onBackgroundColor onBackgroundColor = onBackgroundColor
) )
refreshAndroidView = false
}
} }
) )
} }