一般用于Scaffold中的draw和endDraw属性作为左右的滑页栏,可以容纳一个子组件,能指定影深。

相关组件

Scaffold DrawerHeader

Drawer基本使用

【child】 : 子组件 【Widget】
【elevation】 : 影深 【double】
56.gif

  1. import 'package:flutter/material.dart';
  2. class CustomDrawer 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: const <Widget>[
  21. DrawerHeader(
  22. decoration: BoxDecoration(
  23. image: DecorationImage(
  24. image: AssetImage('assets/images/caver.jpeg'),
  25. fit: BoxFit.cover),
  26. ),
  27. child: Text(
  28. '张风捷特烈',
  29. style: TextStyle(fontSize: 24, color: Colors.white, shadows: [
  30. Shadow(color: Colors.black, offset: Offset(1, 1), blurRadius: 3)
  31. ]),
  32. ),
  33. ),
  34. ListTile(
  35. leading: Icon(
  36. Icons.star,
  37. color: Colors.blue,
  38. ),
  39. title: Text('我的收藏'),
  40. ),
  41. ListTile(
  42. leading: Icon(
  43. Icons.palette,
  44. color: Colors.orangeAccent,
  45. ),
  46. title: Text('我的绘画'),
  47. ),
  48. ListTile(
  49. leading: Icon(
  50. Icons.insert_drive_file,
  51. color: Colors.green,
  52. ),
  53. title: Text('我的文件'),
  54. ),
  55. ],
  56. );
  57. }