我先看看这个文件:https://docs.flutter.dev/testing/common-errors#incorrect-use-of-parentdata-widget并知道通常情况下使用扩展或错误的父部件下的一些部件。但这不是我的工作
我实际上试着做了一个像这样的多级菜单
我的抽屉代码就像这个抽屉一样dart
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
class MyDrawer extends StatefulWidget {
const MyDrawer({super.key});
@override
State<MyDrawer> createState() => _MyDrawerState();
}
class _MyDrawerState extends State<MyDrawer> {
bool showHistory = false;
bool showConfig = false;
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Stack(
children: <Widget>[
SvgPicture.asset(
'assets/images/logo.svg',
),
],
),
),
ListTile(
leading: SvgPicture.asset(
'assets/images/speedometer.svg',
),
title: const Text('Dashboard'),
onTap: () {
Navigator.pushNamed(context, '/');
},
),
ListTile(
leading: SvgPicture.asset(
'assets/images/chemical_bottles.svg',
),
title: const Text('Jobs'),
onTap: () {
Navigator.pushNamed(context, '/jobs');
},
),
ListTile(
leading: SvgPicture.asset(
'assets/images/box.svg',
),
title: const Text('History'),
onTap: () {
setState(() {
showHistory = !showHistory;
});
},
),
if (showHistory) ...[
ListTile(
leading: const Spacer(),
title: const Text('Batches'),
onTap: () {
// Navigator.pushNamed(context, '/history');
},
),
ListTile(
leading: const Spacer(),
title: const Text('Shipments'),
onTap: () {
// Navigator.pushNamed(context, '/history');
},
),
ListTile(
leading: const Spacer(),
title: const Text('Supplier Invoices'),
onTap: () {
Navigator.pushNamed(context, '/supplierivcs');
},
),
],
ListTile(
leading: SvgPicture.asset(
'assets/images/cog.svg',
),
title: const Text('Configurations'),
onTap: () {
setState(() {
showConfig = !showConfig;
});
},
),
if (showConfig) ...[
ListTile(
leading: const Spacer(),
title: const Text('Currency'),
onTap: () {
// Navigator.pushNamed(context, '/history');
},
)
]
],
),
);
}
}
如果我点击了第一级菜单(如图片中的历史),尝试显示那些第二级,此错误将发生
有帮助吗?
1条答案
按热度按时间avwztpqn1#
用
一个spacer就是一个没有孩子的
Expanded
。我不知道你想要什么,但你可以只留下leading
或把一个SizedBox
与一些宽度在那里