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.42k stars 1.08k forks source link

应用内换肤失败 #423

Open kevin321happy opened 4 years ago

kevin321happy commented 4 years ago

执行应用内换肤失败了,代码执行没有任何报错,但是项目中没有出现主题切换效果 SkinCompatManager.getInstance() .loadSkin("night", object : SkinLoaderListener { override fun onSuccess() { "切换了主题了:onSuccess".kLog(TAG_C) }

                    override fun onFailed(errMsg: String?) {
                        "切换了主题了:onFailed:${errMsg}".kLog(TAG_C)
                    }

                    override fun onStart() {
                        "切换了主题了:onStart:开始切换".kLog(TAG_C)
                    }
                },SkinCompatManager.SKIN_LOADER_STRATEGY_BUILD_IN)

执行到了 onSuccess() 回调但是界面上并任何颜色或背景的主题变化。 有按照文档配置: sourceSets {main {res.srcDirs = ['src/main/res', 'src/main/res-night']}} 以及对应的res-night 重新写一个测试Demo按照同样的方式可以换肤 ,请问走了成功回调但没有换肤效果这个是啥原因呢

kevin321happy commented 3 years ago

问题解决了,因为项目中依赖了BackgroundLibrary这个背景库,导致换主题没有生效,取消BackgroundLibrary依赖就正常https://github.com/JavaNoober/BackgroundLibrary

Jason0501 commented 3 years ago

兄dei,我也遇到这个问题,问了BL的作者,手动初始化BL就好了,就是在换肤回调里面重新初始化BL