Closed yihuajia closed 3 years ago
能否贴一下你再Adapter中对于Item的XML以及代码
xml中textview设置了一个默认的颜色#333333。adapter中的也很简单 if(xxxx) { 设置textview颜色为#333333 } else { 设置textview颜色为#999999 } 没有其它的操作了。
皮肤包里面只就是把#333333替换为另外一个颜色。目前也只会在上述场景下出现颜色没有成功替换
ps:理论上大佬这个库不会出现上述情况么?
xml中textview设置了一个默认的颜色#333333。adapter中的也很简单 if(xxxx) { TextView.setTextColor(ThemeSkinService.getInstance().getCurrentThemeSkinPack().getColor(R.color.333)); } else { TextView.setTextColor(ThemeSkinService.getInstance().getCurrentThemeSkinPack().getColor(R.color.999)); }
当需要替换字体颜色时,需要使用ThemeSkinPack()获取当前所使用的的皮肤包获取对应颜色
xml中textview设置了一个默认的颜色#333333。adapter中的也很简单 if(xxxx) { TextView.setTextColor(ThemeSkinService.getInstance().getCurrentThemeSkinPack().getColor(R.color.333)); } else { TextView.setTextColor(ThemeSkinService.getInstance().getCurrentThemeSkinPack().getColor(R.color.999)); }
当需要替换字体颜色时,需要使用ThemeSkinPack()获取当前所使用的的皮肤包获取对应颜色
那是不是意味着,除了颜色外,如果还涉及到换其它资源的情况,也是需要使用到ThemeSkinPack来获取对应的资源来设置呢
是的,所有需要动态设置的资源都需要先通过ThemeSkinService.getInstance().getCurrentThemeSkinPack() 获得当前所用皮肤包或复合皮肤包的代理类来获取资源
是的,所有需要动态设置的资源都需要先通过ThemeSkinService.getInstance().getCurrentThemeSkinPack() 获得当前所用皮肤包或复合皮肤包的代理类来获取资源
刚才试了下,可以了,感谢~~~~
这种需要根据业务逻辑动态设置的资源目前还没有太好的方法委托给框架管理。另外这种Case还需要通过 ThemeSkinService.getInstance().subscribeSwitchThemeSkin()注册换肤监听,当皮肤发生变化时需要重新获取资源并设置
这种需要根据业务逻辑动态设置的资源目前还没有太好的方法委托给框架管理。另外这种Case还需要通过 ThemeSkinService.getInstance().subscribeSwitchThemeSkin()注册换肤监听,当皮肤发生变化时需要重新获取资源并设置
我还纳闷这个回调的使用场景
是不是还可以在这个的基础上处理多语言的语言包?
多语言还是推荐使用不同的String.xml来实现,如果是根据不同的皮肤显示不同的文言则是可以的。
adapter中存在动态调整文字颜色的逻辑,在换肤后,颜色会变为换肤后的颜色,但是再下拉刷新下列表,颜色恢复到之前的颜色。