xxfast
12/19/2022, 12:43 AMLargeTopAppBar
collapse when you scroll on the list view - but it doesn't seem to work. full code in the 🧵
val scrollState = rememberTopAppBarScrollState()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(state = scrollState)
LargeTopAppBar(
modifier = Modifier.windowInsetsPadding(WindowInsets.statusBars),
..
scrollBehavior = scrollBehavior
)
xxfast
12/19/2022, 12:44 AMval scrollState = rememberTopAppBarScrollState()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(state = scrollState)
LargeTopAppBar(
modifier = Modifier.windowInsetsPadding(WindowInsets.statusBars),
title = {
if(state is Idle) Column {
Text(
text = state.entity.request.parts.values.joinToString(" • "),
style = MaterialTheme.typography.headlineSmall
)
Text(
text = state.entity.request.parts.keys.map { it.text }.joinToString(" • "),
style = MaterialTheme.typography.bodySmall
)
}
},
actions = {
if (isStacked) IconButton(onClick = onFullScreen){
Icon(Icons.Rounded.OpenInFull, null)
}
},
navigationIcon = {
IconButton(
onClick = onBack,
modifier = Modifier.padding(end = 8.dp)
) {
val icon: ImageVector = when {
isStacked -> Icons.Rounded.Close
else -> Icons.Rounded.ArrowBack
}
Icon(
painter = rememberVectorPainter(icon),
contentDescription = null, // TODO
)
}
},
scrollBehavior = scrollBehavior
)
james
12/19/2022, 1:52 AMxxfast
12/19/2022, 2:36 AMjames
12/19/2022, 2:58 AMval scrollState = rememberTopAppBarScrollState()
altogether in your case
so your code becomes something like:
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
Scaffold(
modifier = Modifier
.windowInsetsPadding(WindowInsets.statusBars)
.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
LargeTopAppBar(
...
scrollBehavior = scrollBehavior
)
}
content = { ... }
)
xxfast
12/19/2022, 3:14 AMjames
12/19/2022, 3:15 AM