flutter - Flutter 以编程方式进入暗模式保留过渡
问题描述
我已经构建了一个颤振的 Cupertino 应用程序,它可以通过 Provider 状态更改以编程方式进入黑暗模式。
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
// setup
bool _themeDark = Provider.of<Global>(context).themeDark;
return CupertinoApp(
title: 'MyApp',
theme:
CupertinoThemeData(brightness: _themeDark ? Brightness.dark : null),
...
CupertinoDynamicColor
然后,我为整个应用程序的小部件设置了大量属性。
Container(
color: CupertinoDynamicColor.withBrightness(
color: _myColorLight,
darkColor: _myColorDark),
child: ...
直到现在我才意识到,Brightness 的动画过渡仅在设备亮度变化时执行,而不是在我用_themeDark
.
我显然可以解决这个问题,我制作每个使用CupertinoDynamicColor
和AnimatedContainer
或类似的小部件,但在只处理颜色变化时这似乎是一个沉重的反应。
AnimatedContainer(
duration: Duration(milliseconds: 500),
color: _themeDark ? _myColorDark : _myColorLight,
child: ...
有没有一种简单的方法来实现 iOS 系统从亮到暗的动画过渡,我的状态覆盖会影响所有CupertinoDynamicColor
具有正常过渡的属性。
解决方案
推荐阅读
- javascript - 使用 onchange 函数获取复选框值
- c - Fopen 无法从命令行读取
- python - 如何在相似列值上比较两个不同的数据框并将值放入其他数据框
- awk - 复制行 2 次并从行到列转置
- c - printf 在调用通过引用传递变量的函数时发出警告
- vuejs2 - `apollo-link-state` 和 `vuex`,当我使用 `vue-apollo` 时,我应该使用哪一个来进行状态管理?
- c# - 防止对php登录系统的恶意攻击
- spring-mvc - 如何从 jsp 的下拉菜单中获取多个选定的值并在控制器方法中使用它
- c# - 将字节数组转换为一定长度的数组段
- amazon-web-services - s3api - 按大小查询似乎不起作用