ximsfei / Android-skin-support

Android-skin-support is an easy dynamic skin framework to use for Android, Only one line of code to integrate it. Android 换肤框架, 极低的学习成本, 极好的用户体验. "一行"代码就可以实现换肤, 你值得拥有!!!
MIT License
6.39k stars 1.08k forks source link

如何支持Databing和通过代码设置的颜色和drawable 进行主题切换? #426

Open kevin321happy opened 3 years ago

kevin321happy commented 3 years ago

目前skin好像只替换了xml文件中使用到地资源,Java/Kotlin代码设置的颜色字体等资源没有替换。使用DataBinding过后,查看通过DataBinding绑定的资源其实就是通过Java代码去设置的,如何支持Databing和通过代码设置的颜色和drawable 进行主题切换?

wonxll commented 3 years ago

找到方法了吗?

kevin321happy commented 3 years ago

找到方法了吗?

目前是增加自定义属性的方法 处理的

/列表Item的背景/ @BindingAdapter("common_item_bg") fun bindItemBackGround(view: SkinCompatLinearLayout,selected: Boolean?) { if (AppData.isNightMode()) { view.background = if (selected.value(false)) R.drawable.common_item_selected.resDrawable() else R.drawable.common_item_normal_night.resDrawable() } else { view.background = if (selected.value(false)) R.drawable.common_item_selected.resDrawable() else R.drawable.common_item_normal.resDrawable() } }