#flutter
Вопрос:
Я использую SlideDrawer() в flutter , но при вызове этого я получаю ошибку , метод Toggle() или open() был вызван с нулевым значением ..
код, в котором я вызываю , использует SlideDrawer() в flutter , но при вызове этого я получаю ошибку, метод Toggle() или open() был вызван с нулевым значением ..
код, откуда я звоню
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Irr Alert"),
backgroundColor: Colors.orange,
leading: IconButton(
icon: Icon(Icons.menu),
onPressed: () => SlideDrawer.of(context).toggle(),
),
),
body: Container(
height: MediaQuery.of(context).size.height,
child: Center(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => AddDevice()));
},
child: Column(
children: [
Container(
child: Image.network(
addDevice,
height: 150,
width: 150,
),
),
SizedBox(
height: 10,
),
Text(
"Add Device",
style: TextStyle(fontSize: 25),
),
],
),
),
SizedBox(
height: 20,
),
GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => ShowDevices()));
},
child: Column(
children: [
Image.network(
showDevice,
height: 150,
width: 150,
),
SizedBox(
height: 10,
),
Text(
"Show Device",
style: TextStyle(fontSize: 25),
),
],
),
),
SizedBox(
height: 20,
),
GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => CropDetails()));
},
child: ClipRRect(
borderRadius: BorderRadius.circular(70),
child: Image.network(
cropSeeds,
height: 150,
width: 150,
fit: BoxFit.cover,
),
),
),
SizedBox(
height: 10,
),
Text(
"Crop Details",
style: TextStyle(fontSize: 25),
),
SizedBox(
height: 10,
),
],
),
),
),
),
);
}
Ответ №1:
Вам нужно передать ключ от эшафота для выдвижного ящика, а также назначить его вашему основному эшафоту
final GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldKey
drawer: Drawer(
key: scaffoldKey,
),
body: Container(
),
);
}