插件化开发比较流行且易实现的用法是切换主题
首先,我们需要对布局进行监听,不然用户可能在更改主题后,下次进入app会看见原始的主题变成之后的,影响体验
我们来写一个类,继承自LayoutInflaterFactory
可以看到,最终它返回了一个view,我们需要在onCreatView方法里对view进行主题切换,并将这个view返回
当我们写好这个类后,可以通过下面的方法对activity设置主题
我们需要获得view,自定义view这么获得
sdk自带的view我们需要手动加包名,我们先创建一个包含包名的list,然后通过递归来获得sdk自带的view
我们先写一个bean方便管理
然后将属性有 “textColor” 和 “backGround”的view添加到list
然后我们写一个SkinManager,来获得主题apk里的Resource
拿到这个resource,我们就能换主题了