Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
876 of 1024 menu
◀ ▶

Метод of

Метод of виджета Overlay он принимает context и даёт OverlayState для insert. Без Overlay в предках будет ошибка.

Синтаксис

Overlay.of(context)

Параметры

ПараметрОписание
contextBuildContext под 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.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить