| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android 适配黑暗模式10.0 Q -> 正文阅读 |
|
[移动开发]Android 适配黑暗模式10.0 Q |
首先刚开始 我开始使用了第三方得 Android-skin-support库 因为我的项目是databinding的,升级到最新版本后 库不支持了,所以也是抛弃了,可能是因为这个库的作者工作忙或者是没有时间再去维护这个库了吧,也能理解,大家或者可以用下,也可能会遇到意想不到的问题,反正有利有弊,三思而行 我使用了原生自己切换暗黑模式 第一步 就是创建了一个Model 跟项目解耦开 避免后边改起来印象到主项目 如下图 library_skin 就是暗黑模式的资源 ?drawable-night 存放shape文件 有的同学放图片也是可以? 那你就要创建对应的 比如 drawable-night-xhdpi文件 就是根据分辨放的图片 mipmap-night-xxxhdpi 我这边放的是图片? 不用的同学可以略过 values-night 这个下边我存放的是 colors.xml 目前就是这个文件 这些颜色或者资源的名字要和你默认的资源名字或者颜色的名字保持一致 只是文件加名字加了个night 比如 默认 colors.xml
主题model的 values-night? colors.xml
接下来 就是监听系统切换了暗黑模式 这个我是放在BaseActivity中的?baseApplySkin这个方法就是base的一个回调 子类重写这个方法可以做一些才做?? manifest要设置这个属性 你可以在你的主Activity中设置这个属性 没必要在所有的Activity上设置
DarkModeUtils 切换黑暗模式 已经保存暗黑模式状态
mainActiviy 重写baseApplySkin?
main会重新创建 你要保存一些属性 在Activity重建完成一周回复之前用户的操作 比如切换tab的状态? 输入框的值 我这里保存的 用户切换的tab 下标
下边看下效果 ?效果完美 使用第三方也有不可控的风险 所以建议自己实现 可控 如果H5的适配暗黑模式的花? 去看下我上一篇文章 关于H5适配暗黑的文章H5暗黑模式适配 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 20:04:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |