try 在一个新应用程序中实现一个侧抽屉,我可以渲染它,但它覆盖了整个屏幕,下面是我设置它的方式:
主页:
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home'),
),
drawer: SideDrawer(),
body: Center(
child: Text('Home page'),
),
);
}
}
抽屉小部件位于单独的文件中:
class SideDrawer extends StatelessWidget {
const SideDrawer({Key key, this.user}) : super(key: key);
final FirebaseUser user;
@override
Widget build(BuildContext context) {
return new SizedBox(
width: MediaQuery.of(context).size.width * 0.85,
child: Drawer(
child: new ListView(
children: <Widget>[
new DrawerHeader(
child: new Text("DRAWER HEADER.."),
decoration: new BoxDecoration(color: Colors.orange),
),
new ListTile(
title: new Text("Item => 1"),
onTap: () {
Navigator.pop(context);
Navigator.push(context,
new MaterialPageRoute(builder: (context) => new HomePage()));
},
),
],
)),
);
}
}
Update:抽屉应该从登录页面获取用户详细信息,我猜这里的问题与抽屉是从单独的主页脚手架调用的事实有关,这就是为什么尽管代码中设置了85%的屏幕区域,但它一开始就覆盖了整个区域.
我试了this solution too次,但不管用,有什么建议吗?