Je suis nouveau sur Flutter et je viens de terminer le didacticiel de prise en main. J'aimerais créer un menu latéral, qui apparaîtra du côté gauche lorsque vous balayez (comme Gmail sur Android).
Malheureusement, je ne trouve pas une telle disposition dans la documentation et l'exemple de la galerie Flutter est un peu compliqué.
Quelqu'un pourrait-il m'expliquer comment implémenter un tel widget?
Voici un exemple pour un tiroir simple (je viens d’adapter la configuration de projet par défaut à partir de flutter create
):
import 'package:flutter/material.Dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('TestProject'),
),
drawer: new Drawer(
child: new ListView(
children: <Widget> [
new DrawerHeader(child: new Text('Header'),),
new ListTile(
title: new Text('First Menu Item'),
onTap: () {},
),
new ListTile(
title: new Text('Second Menu Item'),
onTap: () {},
),
new Divider(),
new ListTile(
title: new Text('About'),
onTap: () {},
),
],
)
),
body: new Center(
child: new Text(
'Center',
),
),
);
}
}
Les docs sont un bon endroit pour commencer;)
Btw: y compris un tiroir dans votre échafaud prend également en charge le bouton de menu et le geste de balayage gauche pour vous.
Dans l'échafaudage, spécifiez simplement la drawer: Drawer()
Exemple:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer( // this will set the drawer
child: MyWidget // render your drawer Widget here
),
... // props hidden
);
}
}