type
status
date
slug
summary
tags
category
icon
password
这些年,移动端UI的深色模式还是比较常见你的,IOS在系统级别已经率先支持了,Flutter作为一款优秀的跨端UI框架,在处理深色模式上是比较简单的。

Brightness
Flutter中有一个Brightness的概念,用来表示主题和颜色的亮暗模式。
Flutter针对主题也提供了封装:
访问方式如下:
我们首先想一下,要实现一个切换深色主题的功能的步骤是什么?
- 设置页:进行浅色/深色模式切换,并进行持久化,以便app重启之后还是生效的;
- App:启动的时候获取持久化的浅色/深色模式,并应用到app的主题上;
- 切换时实时刷新主题的深浅模式;
1. 进行深浅色模式的切换
<img src="https://oss.jiangkang.tech/jk/shense2.png" style="zoom:50%;" />
这里使用SharedPreferences来进行持久化,代码比较简单:
App启动时获取持久化的深浅色模式
深浅色模式改变时,实时刷新APP
从前面的两段代码可以看出,我们使用了Provider。
这里我们可以把Provider当做一个单例模式,一处改变,全局生效。
源码
- 作者:姜康
- 链接:https://jiangkang.tech/article/39f5c02b-78dc-4cad-bfbb-a97c1b7e4ca4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章