我正在使用 Jetpack Compose 1.0.0 开发一个 Android 应用程序,我正在尝试制作一个使用可为空的图像 URL 字符串的可组合项,如果它为空,它将显示一个占位符,painterResource如果它不为空,它会显示一个占位符。将使用显示实际图像rememberImagePainter。
我这样做的方式是:
@Composable
fun VariableImagePainterExample (
imageURL: String?
) {
val painter = rememberCoilPainter(
null,
previewPlaceholder = R.drawable.ic_placeholder_user,
fadeIn = true,
)
LaunchedEffect(imageURL) {
painter.request = imageURL
}
Image(painter = painter, contentDescription = null)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,rememberCoilPainteraccompanist-coil 已被弃用,现在建议使用rememberImagePainter. 但是,ImagePainter.request不能像上面那样更改。然后我尝试了以下代码:
@Composable
fun VariableImagePainterExample (
imageURL: String?
) {
val painter = remember {
mutableStateOf<ImagePainter>(painterResource(id = R.drawable.ic_placeholder_user))
}
LaunchedEffect(imageURL) {
painter.value = rememberImagePainter(imageURL)
}
Image(painter …Run Code Online (Sandbox Code Playgroud)