专栏首页代码GG之家Scoops android app多主题架构(一)

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),作者:陆晓明

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • google 分屏 横屏模式 按home键界面错乱故障分析(三)

    google 进入分屏后在横屏模式按home键界面错乱( 三) 你确定你了解分屏的整个流程? ? 故障解析系列文章列表: google 分屏 横屏模式 按hom...

    用户1263308
  • Butter Knife快速开发

    官方地址: https://github.com/JakeWharton/butterknife 功能如下: 开发app中的简化findviewbyi...

    用户1263308
  • google 分屏 popup无法显示故障分析

    问题描述 [Message][Input method]Display is wrong when message at split mode. 分屏模式下短信...

    用户1263308
  • 使用Python和Keras进行主成分分析、神经网络构建图像重建

    如今,几乎我们使用的每个应用程序中都有大量数据- 听音乐, 浏览朋友的图像,或者 观看新的预告片

    拓端
  • gunicorn 基础配置使用

    flask 自带的 web 服务器稳定性较差,只能用于测试。最近做的 web 项目,每次启动,需要敲一堆参数文件,今天学习了官方文档里关于配置的说明,记录一下。

    用户2434869
  • 【Spring】IOC是啥有什么好处

    本文转载自知乎问题回答:Spring IoC有什么好处? 作者: Sevenvidia

    Leetcode名企之路
  • 《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门

    2、在 Mac OS X 上安装 Flink 是非常方便的。推荐通过 homebrew 来安装。

    zhisheng
  • 2018-06-07 小团队的自动化运维实践经验翟志军一些小团队的自动化运维实践经验

    Albert陈凯
  • 为PHP站点开启自定义Apache服务器模块

    为了满足你对PHP应用程序的所有要求,有时你需要添加自定义模块。模块化架构是Apache服务器全球普及的主要原因之一。大多数网站都是通过这个服务器搭建的,我们的...

    Techeek
  • Unity 2D 手册部分翻译

    Unity 2D 原文地址 ? 本章包括Unity 2D的文档 你可以从以下 文档 得到如何切换2D/3D模式的更多细节。 参看 2D和3D项目 了解使用2D或...

    韩伟

扫码关注云+社区

领取腾讯云代金券