Slide 10
Slide 10 text
ハッシュタグ #nikkei_tech_talk
Coil
〜Subcompose
AsyncImage〜
10
@Composable
fun SubcomposeAsyncImage(
model: Any?,
contentDescription: String?,
imageLoader: ImageLoader,
modifier: Modifier = Modifier,
transform: (State) -> State = DefaultTransform,
onState: ((State) -> Unit)? = null,
alignment: Alignment = Alignment.Center,
contentScale: ContentScale = ContentScale.Fit,
alpha: Float = DefaultAlpha,
colorFilter: ColorFilter? = null,
filterQuality: FilterQuality = DefaultFilterQuality,
content: @Composable SubcomposeAsyncImageScope.() -> Unit,
) {
...
if (sizeResolver !is ConstraintsSizeResolver) {
Box(...) { ... } // ※2
} else {
BoxWithConstraints(
modifier = modifier,
contentAlignment = alignment,
propagateMinConstraints = true
) { ... }
}
}
SubcomposeAsyncImageの中身を
覗いてみると...👀
BoxWithConstraints(※1)
が使われている!
※1:SubcomposeLayoutを利用したComposable
※2:厳密にはSubcomposeAsyncImageでも、
ImageRequestにサイズを明示的に指定した場合には、
constraints取得が不要なためSubcompositionを
使用しない