Android-skin-support
Android-skin-support copied to clipboard
在 Compose 中使用主题换肤
@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 的换肤框架会比较合理