默认情况下,flutter中的endDrawer图标是汉堡包图标。我想将其更改为过滤器图标。
new Scaffold(
endDrawer: Drawer(),
...
}
答案 0 :(得分:9)
这应该做您想要的:
import 'package:flutter/material.dart';
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
endDrawer: Drawer(),
appBar: AppBar(
actions: [
Builder(
builder: (context) => IconButton(
icon: Icon(Icons.filter),
onPressed: () => Scaffold.of(context).openEndDrawer(),
tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip,
),
),
],
),
body: new Container(),
),
);
}
}
void main() => runApp(App());
请注意,“ Builder”是必需的,以便IconButton可以在支架下获取上下文。否则,它将使用应用程序的上下文,因此将无法找到脚手架。
另一种(更清洁的)选项是制作一个包含IconButton的StatelessWidget。
答案 1 :(得分:1)
您可以使用自己的前导小部件替换提供的默认前导。 尽管您将不得不编写自己的逻辑来管理抽屉。
const initialState={
school:[] //assuming it's an array
}
const schoolReducer =(state=initialState,action)=>{
switch(action.type){
case 'SET_SELECTED':{
return {
...state,
school:action.school
}
}
}
}