Scoops android app多主题架构(一)


简要说明

 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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平