bryankeltonadams
10/10/2025, 8:16 PMbryankeltonadams
10/10/2025, 8:20 PMIan Lake
10/10/2025, 9:14 PMBottomSheetWhenSmallSceneStrategy that takes over that screen only on small screen devices (e.g., phones). Then Navigation3 will automatically handle swapping strategies as your screen size changesbryankeltonadams
10/10/2025, 9:17 PMfun DetailScreen(
detailId: Int,
sheetTrigger: MutableState<Int?>,
onBack: () -> Unit,
) {
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT) {
LaunchedEffect(Unit) {
sheetTrigger.value = detailId
onBack()
}
}
fun HomeScreen(
sheetTrigger: State<Int?>,
onNavigateToDetail: (Int) -> Unit
) {
var showBottomSheet by remember { mutableStateOf(false) }
var pendingDetailId by remember { mutableStateOf<Int?>(null) }
LaunchedEffect(sheetTrigger.value) {
if (sheetTrigger.value != null) {
pendingDetailId = sheetTrigger.value
showBottomSheet = true
}
}Ian Lake
10/10/2025, 9:18 PMbryankeltonadams
10/10/2025, 9:19 PMIan Lake
10/10/2025, 9:22 PMIan Lake
10/10/2025, 9:23 PMbryankeltonadams
10/10/2025, 9:25 PMIan Lake
10/10/2025, 9:44 PMbryankeltonadams
10/10/2025, 9:51 PMIan Lake
10/10/2025, 9:53 PMCompactBottomSheetSceneStrategy to only apply on phones and the easiest place to see that pattern is with what the TwoPane recipe doesIan Lake
10/10/2025, 9:54 PMIan Lake
10/10/2025, 9:55 PMrememberCompactBottomSheetSceneStrategy(), rememberListDetailSceneStrategy(), then compatBottomSheetSceneStrategy then listDetailSceneStrategy to chain them togetherIan Lake
10/10/2025, 10:00 PMthen bug on the most recent release: https://kotlinlang.slack.com/archives/C04TPPEQKEJ/p1759983151912669?thread_ts=1759981546.972439&cid=C04TPPEQKEJ)