flutter 删除抽屉标题中的多余空间

xzlaal3s  于 2023-04-13  发布在  Flutter
关注(0)|答案(2)|浏览(228)

我要实现此抽屉标题

但是我的抽屉有很大的空间,如何去除抽屉顶部多余的空间?

编码

  1. class AppDrawer extends HookWidget {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Drawer(
  5. child: ListView(
  6. padding: EdgeInsets.zero,
  7. children: <Widget>[
  8. _createHeader(),
  9. _createDrawerItem(
  10. icon: Icons.contacts,
  11. text: 'Contacts',
  12. onTap: () {},
  13. ),
  14. _createDrawerItem(
  15. icon: Icons.event,
  16. text: 'Events',
  17. onTap: () {},
  18. ),
  19. ],
  20. ),
  21. );
  22. }
  23. Widget _createDrawerItem(
  24. {required IconData icon,
  25. required String text,
  26. required GestureTapCallback onTap}) {
  27. return ListTile(
  28. title: Row(
  29. children: <Widget>[
  30. Icon(icon),
  31. Padding(
  32. padding: const EdgeInsets.only(left: 8.0),
  33. child: Text(text),
  34. )
  35. ],
  36. ),
  37. onTap: onTap,
  38. );
  39. }
  40. Widget _createHeader() {
  41. return const DrawerHeader(
  42. decoration: BoxDecoration(color: Colors.green),
  43. child: ListTile(
  44. title: Text("Name"),
  45. subtitle: Text("Email"),
  46. dense: true,
  47. leading: CircleAvatar(child: Icon(Icons.people)),
  48. ));
  49. }
  50. }

忽略此行epfokeofkpekf efewfefefefefefefefefewf fewfef fefef fefjoej jifjeojfo oijoewfjoej oijfoijfoiejf rvw

nvbavucw

nvbavucw1#

除了DrawerHeader,您还可以使用Container或SizedBox来根据需要更改其高度。

hgtggwj0

hgtggwj02#

你可以使用Container()来代替DrawerHeader()
示例:

  1. class AppDrawer extends HookWidget {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Drawer(
  5. child: ListView(
  6. padding: EdgeInsets.zero,
  7. children: <Widget>[
  8. _createHeader(),
  9. _createDrawerItem(
  10. icon: Icons.contacts,
  11. text: 'Contacts',
  12. onTap: () {},
  13. ),
  14. _createDrawerItem(
  15. icon: Icons.event,
  16. text: 'Events',
  17. onTap: () {},
  18. ),
  19. ],
  20. ),
  21. );
  22. }
  23. Widget _createDrawerItem(
  24. {required IconData icon,
  25. required String text,
  26. required GestureTapCallback onTap}) {
  27. return ListTile(
  28. title: Row(
  29. children: <Widget>[
  30. Icon(icon),
  31. Padding(
  32. padding: const EdgeInsets.only(left: 8.0),
  33. child: Text(text),
  34. )
  35. ],
  36. ),
  37. onTap: onTap,
  38. );
  39. }
  40. Widget _createHeader() {
  41. return Container(
  42. height: 100,
  43. decoration: BoxDecoration(color: Colors.green),
  44. child: ListTile(
  45. title: Text("Name"),
  46. subtitle: Text("Email"),
  47. dense: true,
  48. leading: CircleAvatar(child: Icon(Icons.people)),
  49. ));
  50. }
  51. }
展开查看全部

相关问题