AnimatedVisibility

   @Composable
    fun AnimatedVisibility01() {
        var visible by remember { mutableStateOf(true) }

        Column(horizontalAlignment = Alignment.Start) {
            Button(onClick = { visible = !visible }) {
                Text(text = if (visible) "Hide" else "Show")
            }

            Spacer(modifier = Modifier.height(20.dp))

            AnimatedVisibility(visible = visible,
                enter = fadeIn()+ expandVertically(),
                exit = fadeOut() + shrinkVertically()

            ) {
                Box(
                    modifier = Modifier
                        .size(1000.dp)
                        .background(Color.Blue),
                    contentAlignment = Alignment.Center
                ) {
                    Text(text = "Hello", color = Color.White)
                }
            }
        }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了你的要求。可以通过使用默认的ItemVisibilityEventFlow和AnimatedVisibility来解决该问题。下面是一个完整的示例代码,供你参考: ``` @Composable fun NoteFolderList(list: Flow<List<NoteFolderEntity>>) { val noteFolderList by list.collectAsState(initial = emptyList()) LazyColumn { items(noteFolderList) { noteFolder -> NoteFolderItem(noteFolder) } } } @Composable fun NoteFolderItem(noteFolder: NoteFolderEntity) { var isVisible by remember { mutableStateOf(false) } AnimatedVisibility( visible = isVisible, ) { Card( modifier = Modifier .padding(8.dp) .fillMaxWidth() .wrapContentHeight() .clickable(onClick = { /* do something */ }), elevation = 4.dp ) { Column( modifier = Modifier .padding(8.dp) .fillMaxWidth() ) { Text( text = noteFolder.title, fontWeight = FontWeight.Bold, fontSize = 16.sp, color = Color.Black ) Spacer(modifier = Modifier.height(8.dp)) Text( text = noteFolder.content, fontSize = 14.sp, color = Color.Gray, overflow = TextOverflow.Ellipsis, maxLines = 2 ) } } } LaunchedEffect(key1 = noteFolder) { isVisible = true } } ``` 在这个示例中,我们在NoteFolderItem中添加了一个AnimatedVisibility组件,它会在item出现时显示一个动画。我们使用LaunchedEffect来控制显示动画的时机,当添加新的数据时,AnimatedVisibility会根据isVisible值来控制是否显示动画。 使用这个示例,你可以在你的compose组件中添加动画,使得当item超过屏幕时添加新数据时有一个渐进的过渡效果。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值