Junior — Middle
Ar dirbote su Collapsing Toolbar komponentu Jetpack Compose?
sobes.tech AI
Atsakymas iš AI
Jetpack Compose nėra įmontuoto Collapsing Toolbar komponento, kaip klasikinėje Android versijoje su CoordinatorLayout ir AppBarLayout. Tačiau panašų elgesį galima įgyvendinti naudojant LazyColumn arba NestedScrollConnection, stebint slinkimą ir keičiant viršutinio elemento dydį ar matomumą.
Supaprastintas collapsible toolbar pavyzdys:
var toolbarHeight remember { mutableStateOf(200.dp) }
val scrollState = rememberLazyListState()
LaunchedEffect(scrollState.firstVisibleItemScrollOffset) {
toolbarHeight = (200 - scrollState.firstVisibleItemScrollOffset.dp).coerceAtLeast(56.dp)
}
Column {
Box(modifier = Modifier
.height(toolbarHeight)
.fillMaxWidth()
.background(Color.Blue)) {
Text("Collapsing Toolbar", color = Color.White, modifier = Modifier.align(Alignment.Center))
}
LazyColumn(state = scrollState) {
items(100) { index ->
Text("Item #$index", modifier = Modifier.padding(16.dp))
}
}
}
Daugiau sudėtingesniems atvejams galima naudoti bibliotekas arba kurti individualius sprendimus naudojant NestedScroll API.