为什么DrawerHeader顶部存在无法消除的Padding.
在使用DrawerHeader的过程中发现无论如何设置DrawerHeader的padding和margin,都不能避免顶部有一个和状态栏等高的padding

分析
这是由于DrawerHeader的自身特性导致的。
通过查看DrawerHeader的源码就会发现,虽然其构造函数中存在margin和padding参数,但是在最终build时候,还是会给child加上一个statusBarHeight的padding
1 | // 节选自drawer_header.dart里_MyHomePageState的build函数中 |
解决办法
使用DrawerHeader时将padding设置为负状态栏高度即可。
1 | // 用同样的方式获取到状态栏高度 |
效果

设备:Essential Phone
环境:
1 | Flutter 1.10.13-pre.10 • channel master • https://github.com/flutter/flutter.git |