简要说明
Scoops是一个android应用库,主要解决的是多主题实现方案。通过配置多个R.style.Theme ,代码进行动态设置主题,重启当前界面实现。
原理分析
主要通过设置主题(存储设置值), 重启activity,通过setTheme方式设置style实现。
使用方法
1 项目的build.gradle里面
2 模块的build.gradle里面
3 values里面加入themes.xml
配置一些主题,为了多主题更换使用
4 AndroidManifest.xml里面
配置上默认主题,这里要注意的是配置的和5里面写的默认的那个要一致
5 MainApp里面
完成初始化,主要设置一系列的主题。其中addToppings为的是注释的时候使用,后面会讲它的用法。setSharedPreferences 配置默认的存储key值addDayNightFlavor 设置DayNight的主题风格,这个随后会讲到。
6 在MainAcitvity里面
1:需要继承AppCompatActivity2:需要在setContentView前面调用Scoop.getInstance().apply(this);将主题设置进来。
3:这里说下为什么需要在AndroidManifest.xml里面配置默认主题,因为Scoops设计,在判断主题没有更改的情况下,不进行设置主题,因此第一次进来不会设置。所以我们要配置默认主题。并且和MainApp里面设置的默认值一样。这里的true第三个参数说明设置为默认主题,和我们在AndroidManifest.xml设置的主题一致即可。
7 效果如下
8 代码地址
官网 地址 https://github.com/52inc/Scoops
demo地址 https://github.com/luxiaoming/ScoopsDemo