Метод of
Метод of виджета Scaffold входит в стандартный набор Material. Работает внутри дерева MaterialApp.
Синтаксис
Scaffold.of(context)
Параметры
| Параметр | Описание |
|---|---|
context |
BuildContext виджета внутри дерева.
|
Пример
Давайте найдём ScaffoldState через of:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: OfDemo()));
}
class OfDemo extends StatelessWidget
{
const OfDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
final state = Scaffold.of(context);
state.showBottomSheet((ctx) => SizedBox(
height: 80,
child: Center(child: Text('abcde')),
));
},
child: Text('abcde'),
),
),
);
}
}
После нажатия снизу появится панель через ScaffoldState.
Пример
Давайте откроем drawer через of:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DrawerOf()));
}
class DrawerOf extends StatelessWidget
{
const DrawerOf({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
drawer: Drawer(child: ListTile(title: Text('12345'))),
body: Center(
child: ElevatedButton(
onPressed: () => Scaffold.of(context).openDrawer(),
child: Text('12345'),
),
),
);
}
}
После нажатия слева выедет Drawer.
Смотрите также
-
виджет
MaterialApp,
который приложение в стилеMaterial -
виджет
Scaffold,
который каркас экрана -
класс
ScaffoldState,
который открыть ящик и нижнюю панель -
метод
openDrawer,
который помогает собрать тот же сценарий