Jac*_*ack 3 flutter flutter-layout
我有一个使用 Material Design 的 Flutter 项目,当我浏览路线时,appbar 将显示后退按钮。最近刚在我的项目中实现了一个抽屉,抽屉图标覆盖了后退图标。我基本上想撤消此操作,为某些屏幕显示后退按钮,并为其他屏幕显示菜单按钮,就像我定义具有showIcon: false属性的抽屉一样?我知道这篇文章是一个类似的问题,但没有显示问题或解决方案的代码......我的抽屉看起来像这样:
return Scaffold(
//appbar is here
appBar: AppBar(
title: Text("Title"),
),
drawer: drawer,
body: _buildBody(),
);
Run Code Online (Sandbox Code Playgroud)
我在这里定义抽屉:
var drawer = Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
//My listTiles and UserAccountsDrawerHeader are removed for simplicity
],
),
);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。
我不确定我是否理解正确,这里是输出,下面是完整代码。
void main() => runApp(MaterialApp(home: MyPage()));
class MyPage extends StatefulWidget {
@override
_MyPageState createState() => _MyPageState();
}
class _MyPageState extends State<MyPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: Column(
children: <Widget>[
RaisedButton(
onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (_) => Page1())),
child: Text("Go to Drawer Page"),
),
RaisedButton(
onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (_) => Page2())),
child: Text("Go to Back button Page"),
),
],
),
),
);
}
}
// this has drawer
class Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(),
drawer: Drawer(),
);
}
}
// this has back button and drawer
class Page2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => Navigator.pop(context),
),
),
body: Center(),
drawer: Drawer(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4223 次 |
| 最近记录: |