gpt4 book ai didi

android - 当包含可绘制对象的整数变量传递给 painterResource 函数时,为什么图像不在 Android Studio 中呈现?

转载 作者:行者123 更新时间:2023-12-05 05:30:25 25 4
gpt4 key购买 nike

我需要根据特定的用户交互显示不同的图像。因此,我将可绘制资源 ID 存储在一个整型变量中。但是,当我将此变量传递给图像的 painterResource 函数时,图像不会被渲染。

代码如下所示:

val img = R.drawable.img1
val img2 = R.drawable.img2

// imageToDisplay is assigned based on certain conditions.
var imageToDisplay = img

Image(painter = painterResource(imageToDisplay), contentDescription = null)

最佳答案

你提供的代码在我这边使用可用的可绘制对象“按原样”工作,除非你包含更多细节然后我们只能猜测,但是当你说

I have a requirement to display different images based on certain user interactions. …

… imageToDisplay is assigned based on certain conditions.

… when I pass this variable into the Image's painterResource function the image is not rendered.

我最好的猜测是,当您执行某些条件操作时,这些代码所在的可组合项不会由于某种原因而重新组合或不会更新。

同样,我们只能猜测,因此您可以尝试这个或仅将其用作引用。

@Composable
fun DynamicImageComposable() {

val img = R.drawable.img
val img2 = R.drawable.img

// don't use ordinary variable, convert it to a mutable State instead
var imageToDisplay by remember {
mutableStateOf(img) // just use any drawable you want as the initial value
}

// when you change this to img2, this composable is expected to re-compose
imageToDisplay = img

Image(painter = painterResource(imageToDisplay), contentDescription = null)
}

逻辑有点无用,但它试图指出的是使用可变状态来重新组合可组合项。

关于android - 当包含可绘制对象的整数变量传递给 painterResource 函数时,为什么图像不在 Android Studio 中呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74675941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com