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:需要继承AppCompatActivity 2:需要在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

原文发布于微信公众号 - 代码GG之家(code_gg_home)

原文发表时间:2016-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏奇梦博客

AppNode面板成功安装Nextcloud后出现安全警告解决办法 原创 PHP 配置

21630
来自专栏应用案例

Nginx+Tomcat 配置负载均衡集群

目的: 同一个项目部署到多个tomcat中,共用80端口。停掉其中任何一个(只要服务有一个在运行),都不会影响用户的使用。 一、项目准备 准备Java项目测试包...

282100
来自专栏IT技术精选文摘

浅析Nginx的工作模式及原理

(微信公众号:IT技术精选文摘, 微信号:ITHK01, 欢迎订阅) 同Apache http server的Perfork工作模型类似,Nginx也有mast...

69170
来自专栏每日一篇技术文章

weex-05-调试工具的使用

发现浏览器页面和手机页面同步,你可以点击手机上面的cell 试试看,发现不能跳转页面,可能做了限制!

15110
来自专栏Android干货

Android项目实战(四十八):架构之组件化开发

11830
来自专栏Java学习123

Centos6.5设置Tomcat7管理员用户名和密码

33260
来自专栏信安之路

为Nmap添砖加瓦

Nmap作为一款优秀的端口扫描器,被所有渗透测试人员当作工作中必不可少的辅助工具,它不仅支持多种扫描方式,还支持添加漏洞测试脚本,在强大的lua脚本支持下,使得...

9200
来自专栏Java学习123

重新设置Tomcat7.0管理员用户名和密码

30150
来自专栏黑泽君的专栏

【MyEclipse】我们导入的jar包后, 一般没有关联源码, 需要手动进行关联!推荐这种方式。

11750
来自专栏雨过天晴

原 PHPStrom 9系列激活码

22140

扫码关注云+社区

领取腾讯云代金券