adit
02/18/2026, 5:22 PMOliver.O
02/18/2026, 5:46 PMadit
02/18/2026, 5:48 PMadit
02/18/2026, 5:50 PMadit
02/18/2026, 5:51 PMOliver.O
02/18/2026, 5:56 PMOliver.O
02/18/2026, 5:57 PMadit
02/18/2026, 5:59 PMadit
02/18/2026, 6:10 PMSuresh Maidaragi
03/11/2026, 8:18 AM<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.compose.ui.platform.ComposeView //here can this coach mark works?
android:id="@+id/composeView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>adit
03/11/2026, 1:42 PMcomposeView.setContent {
val controller = rememberCoachmarkController()
CoachmarkHost(controller = controller) {
// your compose UI with coachmark targets
}
}
The catch: the overlay is scoped to the ComposeView’s bounds. So if your ComposeView only takes part of the screen, the scrim won’t cover that XML TextView above it. Coachmarks for anything inside the Compose tree will work perfectly though.
If you need full-screen overlay coverage (including the XML parts), you’d want to either go full Compose for that screen or make the ComposeView fill the whole layout.