Junior — Middle
Դու աշխատե՞լ ես Jetpack Compose-ում Collapsing Toolbar կոմպոնենտի հետ։
sobes.tech AI
Պատասխան AI-ից
Jetpack Compose-ում չկա տեղադրված Collapsing Toolbar կոմպոնենտ, ինչպես դասական Android-ում CoordinatorLayout և AppBarLayout-ով: Սակայն, նման վարքագիծը կարելի է իրականացնել LazyColumn կամ NestedScrollConnection օգտագործելով, հետևելով սքրոլին և փոփոխելով վերևի կոմպոնենտի չափը կամ տեսանելիությունը:
Պարզեցված օրինակ՝ collapsing toolbar-ի իրականացման:
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))
}
}
}
Ավելին, ավելի բարդ դեպքերում, կարելի է օգտագործել գրադարաններ կամ ստեղծել անհատական լուծումներ NestedScroll API-ների միջոցով։