Jokūbas Trinkūnas
09/14/2021, 12:39 PMImage(
painter = rememberImagePainter(
data = url,
builder = {
placeholder(...) // <-- I want to have a composable placeholder instead
crossfade(true)
}
),
cb
09/15/2021, 7:32 AMwhen
to switch the content based on painter.state
.
The second transition example shows the overall idea: https://coil-kt.github.io/coil/compose/#transitionsJokūbas Trinkūnas
09/15/2021, 7:33 AMJokūbas Trinkūnas
09/15/2021, 10:25 AM@Composable
fun CoilImage(
modifier: Modifier = Modifier,
url: String?,
builder: ImageRequest.Builder.() -> Unit = { crossfade(true) },
contentDescription: String? = null,
loading: @Composable (() -> Unit)? = null,
failure: @Composable ((ImagePainter.State.Error) -> Unit)? = null
) {
val coilPainter = rememberImagePainter(data = url, builder = builder)
val state = coilPainter.state
when {
state is ImagePainter.State.Loading && loading != null -> loading()
state is ImagePainter.State.Error && failure != null -> failure(state)
else -> Image(
painter = coilPainter,
modifier = modifier,
contentDescription = contentDescription
)
}
}