Low Poly 海上钢琴兔

软件:Blender 2.8

这段时间猪肉价格涨得很厉害,为了提高自己的身价,我就想把自己变成猪,于是就不停的睡觉。什么都没有做,荒废了好长时间。

凑巧因为海上钢琴师重置版要在中国上映了,而这个电影对我来说有着特殊的意义吧,今天那件事情已经过去两个月整了。不叨叨了,步入主题。

海上钢琴师xTo The Moon

海水看上去像是宝石?可能是因为我最近刚补完了宝石之国的原因吧。

Flutter如何设置暗黑模式

Flutter如何设置暗黑模式

Android 10 和 iOS 13 都加入了暗黑模式,那么如何在Flutter中实现暗黑模式的效果呢呢?

分析

令人庆幸的是Flutter已经添加了对暗黑模式的支持,所以无需开发者手动去检测当前系统设置然后逐个修改颜色。要想实现暗黑模式,只需要在MaterialApp中配置一个darkTheme参数即可。

解决办法

1
2
3
4
5
6
7
8
9
MaterialApp(
theme: ThemeData(
brightness: Brightness.light,
primaryColor: Colors.red,
),
darkTheme: ThemeData(
brightness: Brightness.dark,
),
);

效果

参考资料

Matt Carroll:
Android Dark Theme in Flutter

设备:iPhone 11 Pro Simulator

环境:

1
2
3
4
Flutter 1.10.13-pre.10 • channel master • https://github.com/flutter/flutter.git
Framework • revision f4b4616f87 (2 days ago) • 2019-10-04 20:01:04 -0700
Engine • revision 7d90779bb6
Tools • Dart 2.6.0 (build 2.6.0-dev.0.0 d6c6d12ebf)

Flutter中DrawerHeader移除顶部的Padding

为什么DrawerHeader顶部存在无法消除的Padding.

在使用DrawerHeader的过程中发现无论如何设置DrawerHeader的padding和margin,都不能避免顶部有一个和状态栏等高的padding

分析

这是由于DrawerHeader的自身特性导致的。
通过查看DrawerHeader的源码就会发现,虽然其构造函数中存在margin和padding参数,但是在最终build时候,还是会给child加上一个statusBarHeight的padding

1
2
3
4
// 节选自drawer_header.dart里_MyHomePageState的build函数中
final double statusBarHeight = MediaQuery.of(context).padding.top;
// 无法消除的padding
padding: padding.add(EdgeInsets.only(top: statusBarHeight)),

解决办法

使用DrawerHeader时将padding设置为负状态栏高度即可。

1
2
3
4
5
6
7
8
9
// 用同样的方式获取到状态栏高度
double _statusBarHeight = MediaQuery.of(context).padding.top;

DrawerHeader(
decoration: BoxDecoration(color: Colors.white),
// top padding 设置为负的状态栏高度
padding: EdgeInsets.only(top: -_statusBarHeight),
)
// ......

效果

设备:Essential Phone

环境:

1
2
3
4
Flutter 1.10.13-pre.10 • channel master • https://github.com/flutter/flutter.git
Framework • revision f4b4616f87 (2 days ago) • 2019-10-04 20:01:04 -0700
Engine • revision 7d90779bb6
Tools • Dart 2.6.0 (build 2.6.0-dev.0.0 d6c6d12ebf)
© 2025 Do U Find IT? All Rights Reserved.
Theme by hiero