在我的底部导航栏中,我有五个图标,其中四个图标打开4个不同的屏幕,我想要另一个图标打开showModalBottomSheet个,但当我实现它并运行应用程序时,它显示错误消息
在生成过程中调用setState()或markNeedsBuild().和‘Package:Ffltter/src/Widget/Navigator.dart’:失败的断言:行 2903位置18:‘!Navigator._DebugLocked’:不为真.
我也试过使用WidgetsBinding.instance?.addPostFrameCallback((_),但它也显示错误提示为'This expression has a type of 'void' so its value can't be used.' 我该怎么办??
class BottomNavigationPage extends StatefulWidget {
const BottomNavigationPage({Key? key}) : super(key: key);
@override
State<BottomNavigationPage> createState() => _BottomNavigationPageState();
}
class _BottomNavigationPageState extends State<BottomNavigationPage> {
int currentIndex = 1;
@override
Widget build(BuildContext context) {
List body = [
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return const Containers(
height: 400,
color: Colors.green,
);
}),
const Containers(
height: 400,
color: Colors.red,
),
const Dashboard(),
const DepartmentPage(),
const Dashboard(),
const DepartmentPage(),
];
return Scaffold(
body: Center(
child: body[currentIndex],
),
bottomNavigationBar: BottomNavigationBar(
//showUnselectedLabels: true,
selectedItemColor: AppColor.btnColor,
selectedIconTheme: const IconThemeData(color: AppColor.btnColor),
unselectedItemColor: Colors.black45,
showSelectedLabels: true,
currentIndex: currentIndex,
onTap: (int newindex) {
setState(() {
currentIndex = newindex;
});
},
items: const [
BottomNavigationBarItem(
label: '',
activeIcon: Icon(
Icons.menu,
color: AppColor.btnColor,
size: 30,
),
icon: Icon(
Icons.menu,
size: 30,
),
),
BottomNavigationBarItem(
activeIcon: Icon(
Icons.home,
size: 30,
),
label: 'होम',
icon: Icon(
Icons.home,
size: 30,
),
),
BottomNavigationBarItem(
activeIcon: Icon(
Icons.people,
size: 30,
),
label: 'शाखा हरु ',
icon: Icon(
Icons.people,
size: 30,
),
),
BottomNavigationBarItem(
label: 'सूचना हरु',
activeIcon: Icon(
Icons.task,
size: 30,
),
icon: Icon(
Icons.task,
size: 30,
),
),
BottomNavigationBarItem(
activeIcon: Icon(
Icons.task,
size: 30,
),
label: 'सूचना हरु',
icon: Icon(
Icons.task,
size: 30,
),
),
],
),
);
}
}