Класс ScaffoldState
Класс ScaffoldState хранит состояние
Scaffold.
Получают через Scaffold.of(context) или
Scaffold.of.
Методы openDrawer, showBottomSheet и openEndDrawer меняют UI экрана.
Синтаксис
Scaffold.of(context).openDrawer()
Методы
| Метод | Описание |
|---|---|
openDrawer |
Выезжает левый drawer. |
closeDrawer |
Закрывает боковую панель. |
showBottomSheet |
Показывает нижнюю панель поверх текущего экрана. |
Пример
Давайте откроем drawer кнопкой:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
drawer: Drawer(child: Center(child: Text('abcde'))),
body: Center(
child: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
Scaffold.of(context).openDrawer();
},
child: Text('12345'),
);
},
),
),
),
),
);
}
Слева выедет панель с 'abcde'.
Пример
Давайте вызовем showBottomSheet:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
Scaffold.of(context).showBottomSheet(
(ctx) => SizedBox(
height: 80,
child: Center(child: Text('abcde')),
),
);
},
child: Text('abcde'),
);
},
),
),
),
),
);
}
Снизу появится панель с текстом 'abcde'.
Смотрите также
-
виджет
Scaffold,
к которому привязанScaffoldState -
виджет
Drawer,
который открываютopenDrawer -
функция
showBottomSheet,
альтернативаshowBottomSheetу state -
класс
ScaffoldMessenger,
который показываетSnackBarотдельно