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() }
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
val bottomBarHeight = 64.dp
@ -198,16 +199,20 @@ class ItemScreen(
}
},
update = { nestedScrollView ->
val relativeLayout =
(nestedScrollView.children.toList()[0] as RelativeLayout)
val webView = relativeLayout.children.toList()[1] as ItemWebView
if (refreshAndroidView) {
val relativeLayout =
(nestedScrollView.children.toList()[0] as RelativeLayout)
val webView = relativeLayout.children.toList()[1] as ItemWebView
webView.loadText(
itemWithFeed = itemWithFeed,
accentColor = accentColor,
backgroundColor = backgroundColor,
onBackgroundColor = onBackgroundColor
)
webView.loadText(
itemWithFeed = itemWithFeed,
accentColor = accentColor,
backgroundColor = backgroundColor,
onBackgroundColor = onBackgroundColor
)
refreshAndroidView = false
}
}
)
}