JetPack Compose - AnimatedVisibuble SlideinHorizontally Lazy Row Clipping Children ⇐ Android
-
Anonymous
JetPack Compose - AnimatedVisibuble SlideinHorizontally Lazy Row Clipping Children
У меня есть эффект LazyRow , и я хотел иметь эффект SlideInhorizontally с эффектом Bounce. Но ребенок справа всегда обрезан. Я вспомнил в XML, вы можете легко просто просто cliptobounds = false .
, но, казалось, не смог достичь того же эффекта с помощью Compose.slideInHorizontally(
initialOffsetX = { it },
animationSpec = spring(
dampingRatio = Spring.DampingRatioMediumBouncy,
stiffness = Spring.StiffnessLow
)
)
code
val cards = (1..52).map { it.toString() }
val lazyListState = rememberLazyListState()
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
var visible by remember { mutableStateOf(false) }
LaunchedEffect(Unit) { visible = true }
AnimatedVisibility(
visible = visible,
enter = slideInHorizontally(
initialOffsetX = { it },
animationSpec = spring(
dampingRatio = Spring.DampingRatioMediumBouncy,
stiffness = Spring.StiffnessLow
)
),
) {
LazyRow(
modifier = Modifier.align(Alignment.BottomCenter),
state = lazyListState,
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(12.dp),
flingBehavior = ScrollableDefaults.flingBehavior(),
) {
items(cards) { card ->
Card(
modifier = Modifier.size(width = 150.dp, height = 210.dp),
shape = RoundedCornerShape(8.dp),
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.onPrimaryContainer)
) {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(card, color = MaterialTheme.colorScheme.onPrimary)
}
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ping-child
У меня есть эффект LazyRow , и я хотел иметь эффект SlideInhorizontally с эффектом Bounce. Но ребенок справа всегда обрезан. Я вспомнил в XML, вы можете легко просто просто cliptobounds = false .
, но, казалось, не смог достичь того же эффекта с помощью Compose.slideInHorizontally(
initialOffsetX = { it },
animationSpec = spring(
dampingRatio = Spring.DampingRatioMediumBouncy,
stiffness = Spring.StiffnessLow
)
)
code
val cards = (1..52).map { it.toString() }
val lazyListState = rememberLazyListState()
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
var visible by remember { mutableStateOf(false) }
LaunchedEffect(Unit) { visible = true }
AnimatedVisibility(
visible = visible,
enter = slideInHorizontally(
initialOffsetX = { it },
animationSpec = spring(
dampingRatio = Spring.DampingRatioMediumBouncy,
stiffness = Spring.StiffnessLow
)
),
) {
LazyRow(
modifier = Modifier.align(Alignment.BottomCenter),
state = lazyListState,
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(12.dp),
flingBehavior = ScrollableDefaults.flingBehavior(),
) {
items(cards) { card ->
Card(
modifier = Modifier.size(width = 150.dp, height = 210.dp),
shape = RoundedCornerShape(8.dp),
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.onPrimaryContainer)
) {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(card, color = MaterialTheme.colorScheme.onPrimary)
}
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ping-child
Мобильная версия