min
05/31/2026, 9:05 AMComponentActivity makes a ComposeView: AbstractComposeView its content and populates it with an AndroidComposeView. The AndroidComposeView child creates and owns a Composition and the materialised tree (root: LayoutNode) driven by the Composition via a UiApplier. The parent references the Composition of the child. I’m wondering why it’s set up this way. What’s the point of the parent view? The Composition and the materialised tree are both in the child. Why doesn’t Compose just make that the content of the activity?shikasd
06/02/2026, 12:09 AMComposeView without creating composition and you can create it in a state where it does not have all of the dependencies. AndroidComposeView is not created until the view is attached and the dependencies are provided from the hierarchy.shikasd
06/02/2026, 12:09 AMLifecycleOwner etcshikasd
06/02/2026, 12:11 AMmin
06/10/2026, 11:18 AM// internal class CompositionImpl
private fun addPendingInvalidationsLocked(values: Set<Any>, forgetConditionalScopes: Boolean) {
values.fastForEach { value ->
if (value is RecomposeScopeImpl) {
value.invalidateForResult(null)
} else {
addPendingInvalidationsLocked(value, forgetConditionalScopes)
derivedStates.forEachScopeOf(value) {
addPendingInvalidationsLocked(it, forgetConditionalScopes)
}
}
}
// ...
Or when is a value a RecomposeScopeImpl?shikasd
06/10/2026, 12:17 PMRecomposeScope.invalidate worksmin
06/10/2026, 12:47 PMsnapshotInvalidations. Could you please point me to it?shikasd
06/10/2026, 2:48 PMmin
06/13/2026, 8:39 AM