Метод insert
Метод insert класса
OverlayState метод insert вызывают у
OverlayState,
который вернул
of.
Параметр entry - готовая
OverlayEntry.
Синтаксис
overlayState.insert(entry, above: otherEntry);
Параметры
| Параметр | Описание |
|---|---|
entry | Запись с builder, которую рисуют в Overlay. |
above | Необязательная запись, выше которой вставить entry. |
Пример
Давайте вставим запись insert:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: Demo()));
}
class Demo extends StatelessWidget
{
const Demo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
late OverlayEntry entry;
entry = OverlayEntry(
builder: (ctx) {
return Center(
child: Text('12345'),
);
},
);
Overlay.of(context).insert(entry);
},
child: const Text('abcde'),
),
),
);
}
}
На экране кнопка 'abcde'; insert покажет '12345' по центру слоя.
Пример
Давайте вставим запись с Positioned:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: Demo()));
}
class Demo extends StatelessWidget
{
const Demo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Overlay.of(context).insert(
OverlayEntry(
builder: (ctx) {
return Positioned(
top: 16,
left: 16,
child: Text('abcde'),
);
},
),
);
},
child: const Text('12345'),
),
),
);
}
}
По нажатию '12345' insert добавит текст 'abcde' в угол.
Смотрите также
-
виджет
Overlay,
слой поверх маршрутов -
класс
OverlayState,
управление спискомOverlayEntry -
класс
OverlayEntry,
один виджет в слое -
виджет
OverlayPortal,
слой из обычного виджета