Метод of
Метод of виджета
Overlay он принимает context и даёт
OverlayState
для
insert.
Без Overlay в предках будет ошибка.
Синтаксис
Overlay.of(context)
Параметры
| Параметр | Описание |
|---|---|
context | BuildContext под Overlay. |
Пример
Давайте вставим OverlayEntry через 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 entry = OverlayEntry(
builder: (ctx) {
return Center(
child: Text('12345'),
);
},
);
Overlay.of(context).insert(entry);
},
child: const Text('abcde'),
),
),
);
}
}
На экране кнопка 'abcde'; of найдёт Overlay и покажет текст '12345' по центру.
Пример
Давайте прочитаем of внутри Builder:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: OfBuilderDemo()));
}
class OfBuilderDemo extends StatelessWidget
{
const OfBuilderDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Builder(
builder: (innerContext) {
final state = Overlay.of(innerContext);
return Center(
child: Text(
state.mounted ? 'abcde' : '12345',
),
);
},
),
);
}
}
На экране текст 'abcde', если of вернул OverlayState под MaterialApp.
Смотрите также
-
виджет
Overlay,
слой поверх маршрутов -
класс
OverlayState,
управление спискомOverlayEntry -
класс
OverlayEntry,
один виджет в слое -
виджет
OverlayPortal,
слой из обычного виджета