Android-skin-support icon indicating copy to clipboard operation
Android-skin-support copied to clipboard

在 Compose 中使用主题换肤

Open sunnyswag opened this issue 2 years ago • 0 comments

@Composable
private fun ComposeUIImageItem(
    imgResId: Int,
    contentDescription: String,
    imgWidth: Dp = 56.dp,
    imgHeight: Dp = 90.dp
) {
    AndroidView(
        factory = { context ->
            SkinCompatImageView(context).apply {
                setImageResource(imgResId)
                setContentDescription(contentDescription)
            }
        },
        update = {
            it.setImageResource(imgResId)
        },
        modifier = Modifier
            .width(imgWidth)
            .height(imgHeight)
    )
}

简要思路:使用 Android View 来承载具体换肤的 View 遇到的问题:切换之后不会触发 Compose 重组,因为没有触发到 applySkin() 个人想法:修改起来较为复杂,工作时间有限,目前还是换成 Android 的自定义 View 来实现了。目测使用支持 Compose 的换肤框架会比较合理

sunnyswag avatar Oct 07 '23 09:10 sunnyswag