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开发