Метод openDrawer
Метод openDrawer класса ScaffoldState анимирует
Drawer
из параметра drawer у Scaffold.
ScaffoldState получают через
Scaffold.of(context)
или GlobalKey.
Синтаксис
Scaffold.of(context).openDrawer()
Пример
Давайте откроем drawer по кнопке:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DrawerOpenDemo()));
}
class DrawerOpenDemo extends StatelessWidget
{
const DrawerOpenDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
drawer: Drawer(
child: ListView(
children: [
ListTile(title: Text('abcde')),
],
),
),
body: Center(
child: ElevatedButton(
onPressed: () {
Scaffold.of(context).openDrawer();
},
child: Text('abcde'),
),
),
);
}
}
Слева выедет Drawer со строкой 'abcde'.
Пример
Давайте откроем drawer из AppBar:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DrawerAppBarDemo()));
}
class DrawerAppBarDemo extends StatelessWidget
{
const DrawerAppBarDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
appBar: AppBar(
title: Text('12345'),
leading: IconButton(
icon: Icon(Icons.menu),
onPressed: () {
Scaffold.of(context).openDrawer();
},
),
),
drawer: Drawer(
child: Center(child: Text('abcde')),
),
body: Center(child: Text('12345')),
);
}
}
Кнопка меню вызовет openDrawer у ScaffoldState.
Смотрите также
-
метод
closeDrawer,
закрыть левый drawer -
виджет
Drawer,
содержимое боковой панели -
метод
Scaffold.of,
получитьScaffoldState -
виджет
Scaffold,
каркас с drawer