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

hide

Метод hide класса OverlayPortalController прячет оверлей, который связан с этим контроллером. Пока слой скрыт, его содержимое не рисуется.

Синтаксис

controller.hide();

Пример

Давайте вызовем hide после show:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: PortalMethodDemo())); } class PortalMethodDemo extends StatefulWidget { const PortalMethodDemo({super.key}); @override State<PortalMethodDemo> createState() => _PortalMethodDemoState(); } class _PortalMethodDemoState extends State<PortalMethodDemo> { final OverlayPortalController _controller = OverlayPortalController(); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: OverlayPortal( controller: _controller, overlayChildBuilder: (ctx) { return Text('12345'); }, child: ElevatedButton( onPressed: () { _controller.hide(); }, child: Text('abcde'), ), ), ), ); } }

Кнопка 'abcde' вызовет hide; OverlayPortal покажет или спрячет '12345'.

Пример

Давайте вызовем метод два раза подряд:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: PortalMethodDemo2())); } class PortalMethodDemo2 extends StatefulWidget { const PortalMethodDemo2({super.key}); @override State<PortalMethodDemo2> createState() => _PortalMethodDemo2State(); } class _PortalMethodDemo2State extends State<PortalMethodDemo2> { final OverlayPortalController _controller = OverlayPortalController(); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: OverlayPortal( controller: _controller, overlayChildBuilder: (ctx) { return Text('abcde'); }, child: ElevatedButton( onPressed: () { _controller.hide(); _controller.hide(); }, child: Text('12345'), ), ), ), ); } }

Кнопка '12345' дважды вызовет hide; слой вернётся к состоянию до первого нажатия.

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

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