首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用图像占位符与Jetpack组合预览

如何使用图像占位符与Jetpack组合预览
EN

Stack Overflow用户
提问于 2021-07-12 07:35:11
回答 3查看 5.4K关注 0票数 8

使用XML时,我们可以选择使用tools:进行设计,在实际数据不可用时使用占位符。我们在Jetpack的写作中有类似的东西吗?

我知道我可以通过一个专用的预览函数将示例数据传递给我的可组合数据。但是,例如,当一个图像源是一个URL (通过线圈加载时,幻灯片..。),即使我传递了一个示例URL,它也不能在预览中加载。一个实用的解决方案可以节省开发时间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-01 16:58:55

正如对cd1答案的更新一样:

rememberCoilPainter is renamed to rememberImagePainter and its arguments changed

有关更改的更多信息:

  • rememberCoilPainter被重命名为rememberImagePainter,其参数changed:
  • shouldRefetchOnSizeChange被替换为onExecute,后者对执行图像请求或将skipped.
  • requestBuilder重命名为builder.
  • fadeInfadeInDurationMs具有更大的控制权。迁移到ImageRequest.Builder.crossfade.
  • previewPlaceholder将被删除。如果检查模式是ImageRequest.placeholder,则现在自动使用enabled.
  • LoadPainter重命名为ImagePainter.
  • ImagePainter,如果不调用onDraw,则不再返回执行具有根视图大小的图像请求。如果在ImagePainter中使用LazyColumn,并且图像的大小不受限制,这很可能是值得注意的。加载程序和removed.
  • LocalImageLoader.current是非空的,并且返回default.
  • DrawablePainterrememberDrawablePainter的单例ImageLoader现在是私有的。

来源:https://coil-kt.github.io/coil/compose/

对于预览中可见的占位符,代码是:

代码语言:javascript
运行
复制
Image(
    painter = rememberImagePainter(
        data = "https://www.example.com/image.jpg",
        builder = {
            placeholder(R.drawable.placeholder)
        }
    ),
    contentDescription = "some description",
)
票数 9
EN

Stack Overflow用户

发布于 2021-07-12 07:55:47

如果使用的是线圈,则可以使用previewPlaceholder参数,例如:

代码语言:javascript
运行
复制
Image(
    painter = rememberCoilPainter(
        request = "https://picsum.photos/300/300",
        previewPlaceholder = R.drawable.placeholder,
    ),
    contentDescription = stringResource(R.string.image_content_desc),
)

来源:https://google.github.io/accompanist/coil/#previews

票数 4
EN

Stack Overflow用户

发布于 2022-03-06 23:47:24

11月20日至22日

如果你用线圈..。

代码语言:javascript
运行
复制
implementation("io.coil-kt:coil-compose:2.2.2")

..。现在,您可以在调试模式下使用占位符进行预览,只有这样:

代码语言:javascript
运行
复制
AsyncImage(
   model = "https://www.example.com/image.jpg",
   placeholder = debugPlaceholder(R.drawable.debugPlaceholder),
   contentDescription = stringResource(R.string.description)
)

并创建一个util方法:

代码语言:javascript
运行
复制
@Composable
fun debugPlaceholder(@DrawableRes debugPreview: Int) =
    if (LocalInspectionMode.current) {
        painterResource(id = debugPreview)
    } else {
        null
    }

您可以在这里看到更多信息:https://coil-kt.github.io/coil/compose/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68343581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档