小编Pio*_*per的帖子

Jetpack Compose 中的持续重组

我正在尝试使用 Jetpack Compose 在我的 Android 应用程序中创建天空视图。我想将它显示在Card带有固定的height. 在晚上,卡片背景变成深蓝色,我希望天空中散布一些闪烁的星星。

为了创建星星闪烁动画,我使用了一个InfiniteTransition对象和一个应用于多个s 的scale属性。这些s 在 a 内部创建,然后使用循环随机传播。我正在使用的完整代码如下所示:animateFloatIconIconBoxWithConstraintsfor

@Composable
fun NightSkyCard() {
    Card(
        modifier = Modifier
            .height(200.dp)
            .fillMaxWidth(),
        elevation = 2.dp,
        shape = RoundedCornerShape(20.dp),
        backgroundColor = DarkBlue
    ) {
        val infiniteTransition = rememberInfiniteTransition()
        val scale by infiniteTransition.animateFloat(
            initialValue = 1f,
            targetValue = 0f,
            animationSpec = infiniteRepeatable(
                animation = tween(1000),
                repeatMode = RepeatMode.Reverse
            )
        )
        
        BoxWithConstraints(
            modifier = Modifier.fillMaxSize()
        ) {
            for (n in …
Run Code Online (Sandbox Code Playgroud)

kotlin android-jetpack-compose jetpack-compose-animation compose-recomposition

5
推荐指数
1
解决办法
2441
查看次数