我有什么 一个带有 onpress 打开抽屉的自定义按钮,我的构建片段:(在 MyClassState 内)
Widget build(BuildContext context) => Scaffold(
key: _key,
body: Container(
child: Column(
children: [
Row(children: [
ElevatedButton(
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Icon(
Icons.settings,
size: 38,
color: Colors.white,
),
),
onPressed: () => _key.currentState?.openEndDrawer(),
),
]),]),))
方法 globalkey _key 使用(阅读一些解决方案后here)
Class MyClassState extends State<MyClass> {
GlobalKey<ScaffoldState> _key = GlobalKey();
...
}
我所期望的
抽屉在按下/点击时打开
当前行为结果
点击后没有任何反应,但我可以使用滑动手势打开抽屉。
在这种情况下我做错了什么?
答案 0 :(得分:2)
您没有在脚手架中声明 endDrawer
,这是您更新的代码
Widget build(BuildContext context) => Scaffold(
key: _key,
endDrawer: Drawer( /// this is missing in your code
child: Container(
width: 200,
color: Colors.red,
),
),
body: Container(
child: Column(
children: [
Row(children: [
ElevatedButton(
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Icon(
Icons.settings,
size: 38,
color: Colors.white,
),
),
onPressed: () => _key.currentState?.openEndDrawer(),
),
]),]),))