一般用于Drawer中,作为滑页栏的头部。可以指定内外边距、装饰、子组件等属性。

相关组件

Drawer

DrawerHeader基本使用

【child】 : 子组件 【Widget】
【decoration】 : 装饰 【Decoration】
【margin】 : 外边距 【EdgeInsetsGeometry】
【padding】 : 内边距 【EdgeInsetsGeometry】
57.gif

  1. import 'package:flutter/material.dart';
  2. class CustomDrawerHeader extends StatelessWidget {
  3. @override
  4. Widget build(BuildContext context) {
  5. return Container(
  6. height: 400,
  7. child: Scaffold(
  8. appBar: AppBar(
  9. title: Text('Flutter Unit'),
  10. ),
  11. drawer: Drawer(
  12. elevation: 3,
  13. child: _buildChild(),
  14. ),
  15. ),
  16. );
  17. }
  18. Widget _buildChild() => ListView(
  19. padding: EdgeInsets.zero,
  20. children: <Widget>[
  21. _buildHeader(),
  22. ListTile(
  23. leading: Icon(
  24. Icons.star,
  25. color: Colors.blue,
  26. ),
  27. title: Text('我的收藏'),
  28. ),
  29. ListTile(
  30. leading: Icon(
  31. Icons.palette,
  32. color: Colors.orangeAccent,
  33. ),
  34. title: Text('我的绘画'),
  35. ),
  36. ListTile(
  37. leading: Icon(
  38. Icons.insert_drive_file,
  39. color: Colors.green,
  40. ),
  41. title: Text('我的文件'),
  42. ),
  43. ],
  44. );
  45. Widget _buildHeader() {
  46. return DrawerHeader(
  47. margin: EdgeInsets.all(10),
  48. padding: EdgeInsets.only(left: 20,top: 15),
  49. decoration: BoxDecoration(
  50. borderRadius: BorderRadius.only(
  51. topLeft:Radius.circular(40),
  52. topRight:Radius.circular(40)
  53. ),
  54. image: DecorationImage(
  55. image: AssetImage('assets/images/caver.jpeg'),
  56. fit: BoxFit.cover),
  57. ),
  58. child: Text(
  59. '张风捷特烈',
  60. style: TextStyle(fontSize: 24, color: Colors.white, shadows: [
  61. Shadow(color: Colors.black, offset: Offset(1, 1), blurRadius: 3)
  62. ]),
  63. ),
  64. );
  65. }
  66. }