小编Col*_*gon的帖子

如何在 Compose 中预加载线圈图像?

我有一个寻呼机(伴奏者),其图像是使用 Compose 中的 Coil 从网络获取的。

似乎仅在首次显示可组合项rememberPainter()时调用请求。Image

因此,当我在寻呼机中滑动页面时,Image仅在那一刻显示,因此我们必须等待一会儿。

有什么方法可以强制rememberPainter(线圈)预加载吗?


编辑1:

这是我的实现的一个简单版本(删除了很​​多内容,但这对结果没有影响):

@Composable
private fun Foo(imageList: List<ImageHolder>) {
    if (imageList.isEmpty())
        return

    val painterList = imageList.map {
        rememberImagePainter(
            data = it.getDataForPainter(),
            builder = {
                crossfade(true)
            })
    }

    ImageLayout(imageList, painterList)
}

@Composable
fun ImageLayout(imageList: List<ImageHolder>, painterList: List<Painter>) {
    HorizontalPager(
        count = imageList.size,
        modifier = Modifier.fillMaxWidth(),
    ) { page ->
        Image(
            painter = painterList[page],
            "",
            modifier = Modifier
                .fillMaxWidth()
                .height(200.dp)
                .background(
                    imageList[page].colorAverage
                ),
            contentScale = ContentScale.Crop
        )
    } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose coil

12
推荐指数
1
解决办法
7140
查看次数

foo(x ++,y):: x作为参数发送后总是递增吗?

表达式的增量是否x++总是在变量复制到函数之后进行?

电话:

foo(x++, y);
Run Code Online (Sandbox Code Playgroud)

功能 :

int foo(int x, int y)
{
   return x*y;
}
Run Code Online (Sandbox Code Playgroud)

这是所有编译器的未定义行为吗?

c increment function-call

1
推荐指数
1
解决办法
152
查看次数