android - Auto Height Jetpack 组合线圈图像

标签 android kotlin android-jetpack-compose coil

我正在尝试使用 Jetpack Compose Coil 显示具有填充宽度和自动高度的图像。我希望图像采用全宽和自动高度。但图像仅在我指定固定高度时显示。

Image(
    painter = rememberImagePainter(
        data = post.image
    ),
    contentDescription = null,
    contentScale = ContentScale.Crop,
    modifier = Modifier.fillMaxWidth()
)
我试过 .fillMaxHeight().fillMaxSize()但它不起作用。有什么办法可以做到这一点?

最佳答案

当查看 width 之一时会发生这种情况。/height计算为零,这意味着它不应该显示,也不需要下载它。查看 this issue 中的更多原因在撰写跟踪器上。
你应该让你的大小不等于零。根据您的布局,可以使用宽度/高度/纵横比修饰符的变化来完成。
如果您想获得原始尺寸的图像,可以添加 size(OriginalSize)给画家builder .这将强制图像开始加载。此参数使您的 View 下载并放入图像的完整大小的内存中,而不针对当前 View 进行优化。所以小心使用它,只有当你确定图像不会太大并且你真的不能添加使用大小修饰符时。

Image(
    painter = rememberImagePainter(
        data = post.image,
        builder = {
            size(OriginalSize)
        },
    ),
    contentDescription = null,
    contentScale = ContentScale.Crop,
    modifier = Modifier.fillMaxWidth()
)

关于android - Auto Height Jetpack 组合线圈图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68908278/

相关文章:

android - 人们是否可以看到他们的 android/ios 移动应用程序的代码?

kotlin - 如何从 Kotlin 的 ListView 中获取所选项目?

android - 在 Jetpack Compose 中选择要省略的文本

android - 如何在 Jetpack Compose 中显示 Emoji?

spring-boot - 使用 Kotlin 协程的 Spring Boot Rest 服务

java - 在 ListView 上获取复选框项目时出现问题

Android ImageView 矩阵到纹理矩阵

Android:如何从小部件中清除 Activity 堆栈

generics - 在构造函数中使用模板类