在研究 Jetpack Compose 示例项目时,我看到了@Stable注释@Immutable。我一直在浏览Android 文档和GitHub关于这些注释的信息,但我不明白。
据我了解,如果使用@Immutable,即使状态改变,也不应该发生重组。然而,作为测试的结果,重组仍在继续。
@StableJetpack Compose 中注释的具体作用是什么@Immutable?
我已经使用Glide和Coil通过 Jetpack Compose 通过 URL 加载图像。
然而,图像只有黑色。我怎样才能解决这个问题?
我的Compose版本Coil是最新版本。
值kakaoProfile.value!!.profileImageUrl!!: https: //k.kakaocdn.net/dn/IOMxT/btqYvUIVMAL/VZCdMjf01kxnkFFZFNDJ81/img_640x640.jpg
这是我的代码:
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.End,
verticalArrangement = Arrangement.Center
{
if (kakaoProfile.value == null) {
Icon(
imageVector = Icons.Outlined.AccountCircle,
contentDescription = null,
modifier = Modifier.size(100.dp),
tint = colors.primary
)
} else {
Icon(
painter = rememberCoilPainter(kakaoProfile.value!!.profileImageUrl!!),
contentDescription = null,
modifier = Modifier.size(100.dp)
)
}
}
.
.
.
Button(
modifier = Modifier.padding(start = 8.dp),
shape = RoundedCornerShape(15.dp), …Run Code Online (Sandbox Code Playgroud) 我明白除了compositionin的行为之外composable,所有其他行为都是副作用。那么,在 的情况下TextField,更改TextFieldValuein会onValueChange产生副作用吗?另外,在 中显示 toast 消息是否有副作用composable?
我认为var可以像val唯一的 getter 一样被重写,因为它既有 getter 又有 setter。但这是不可能的。
并且,如果val用具有 setter 的方法覆盖只有 getter 的方法var,则不会发生错误。我不知道这怎么可能。
为什么会这样?