Метод insertAll
Метод insertAll класса OverlayState
вставляет список записей в оверлей за один вызов.
Необязательный аргумент above ставит список выше указанной записи.
Синтаксис
overlayState.insertAll(entries);
Параметры
| Параметр | Описание |
|---|---|
entries | Список OverlayEntry для вставки в слой. |
above | Необязательная запись, выше которой вставить список. |
Пример
Давайте вставим две записи insertAll:
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).insertAll([
OverlayEntry(
builder: (ctx) {
return Align(
alignment: Alignment.topCenter,
child: Text('abcde'),
);
},
),
OverlayEntry(
builder: (ctx) {
return Align(
alignment: Alignment.bottomCenter,
child: Text('12345'),
);
},
),
]);
},
child: const Text('abcde'),
),
),
);
}
}
Кнопка 'abcde' добавит сверху 'abcde' и снизу '12345'.
Пример
Давайте вставим одну запись списком из одного элемента:
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).insertAll([
OverlayEntry(
builder: (ctx) {
return Center(
child: Text('12345'),
);
},
),
]);
},
child: const Text('12345'),
),
),
);
}
}
По нажатию '12345' insertAll покажет текст '12345' по центру.
Смотрите также
-
виджет
Overlay,
слой поверх маршрутов -
класс
OverlayState,
управление спискомOverlayEntry -
класс
OverlayEntry,
один виджет в слое -
виджет
OverlayPortal,
слой из обычного виджета