Kotlin Jetpack Compose remember 给Icon添加透明度

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin Jetpack Compose remember 给Icon添加透明度相关的知识,希望对你有一定的参考价值。

Kotlin更新数据要使用remember

Kotlin Compose Todo小项目 删除添加项目 ,认识状态提升_安果移不动的博客-CSDN博客

接着上面的项目

这里如果是直接使用

randomTint()

那么每次操作数据你会发现都会刷新alpha数据 这并不是我们想要的

正确做法是加上remember

@Composable
fun TodoRow(todo: TodoItem, modifier: Modifier = Modifier, onItemClick: (TodoItem) -> Unit) 
    Row(
        modifier = modifier
            .padding(horizontal = 16.dp, vertical = 8.dp)
            .clickable  onItemClick(todo) ,
        //子元素水平均匀分发
        horizontalArrangement = Arrangement.SpaceBetween
    ) 
        Text(todo.task)
        val iconAlpha = remember() 
            randomTint()
        
        Icon(
            imageVector = todo.icon.imageVector,
            tint = LocalContentColor.current.copy(alpha = iconAlpha),
            contentDescription = stringResource(id = todo.icon.contentDescription)
        )
    



private fun randomTint(): Float 
    val number = Random.nextFloat().coerceIn(0.3f, 0.9f)
    return number

但是有时候会数据错乱在一起 为了区分 可以在remember添加唯一标志符

    val iconAlpha = remember(todo.id) 
            randomTint()
        

这样 当数据发生变化 会去重绘和

iconAlpha

有关的组件。

以上是关于Kotlin Jetpack Compose remember 给Icon添加透明度的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin Jetpack Compose remember 给Icon添加透明度

Kotlin jetpack compose Tab的渲染 AnimatedVisibility的使用

Kotlin jetpack compose 文本输入框ExitText/TextField remember 居然可以传两个参数

Jetpack Compose开源:基于Kotlin的响应式编程方案,简化UI开发

Android Kotlin Jetpack Compose UI框架 完全解析

这个 kotlin jetpack compose 代码示例中的“提供”语法是啥?