初始化侧边栏的关键scaffold
// 使用GlobalKey来获取ScaffoldState的引用,从而能够控制Scaffold的行为,例如打开侧边栏
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
Scaffold组件及其AppBar
// 创建一个Scaffold组件,其中AppBar的标题为“商品列表”
return Scaffold(
// 将先前创建的_scaffoldKey关联到这个Scaffold组件上
key: _scaffoldKey,
appBar: AppBar(
title: Text("商品列表"),
),
);
筛选按钮及其点击事件
// 创建一个可扩展的组件,当点击时打开Scaffold的侧边栏
Expanded(
flex: 1,
child: InkWell(
child: Padding(
// 设定内边距,其中上下的内边距使用ScreenAdaper.height来适应不同屏幕尺寸
padding: EdgeInsets.fromLTRB(
0, ScreenAdaper.height(16), 0, ScreenAdaper.height(16)),
child: Text("筛选", textAlign: TextAlign.center),
),
onTap: () {
// 当点击这个InkWell时,利用_scaffoldKey引用的ScaffoldState打开侧边栏
_scaffoldKey.currentState.openEndDrawer();
},
),
),