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

Класс ModalRoute

Класс ModalRoute расширяет Route и блокирует доступ к предыдущему экрану, пока открыт. MaterialPageRoute - частный случай ModalRoute. Текущий маршрут ищут через of и читают settings.

Синтаксис

ModalRoute.of(context)

Методы

Метод Описание
of Возвращает ModalRoute, связанный с context.

Пример

Давайте узнаем, активен ли маршрут:

import 'package:flutter/material.dart'; class ActiveLabel extends StatelessWidget { const ActiveLabel({super.key}); @override Widget build(BuildContext context) { var route = ModalRoute.of(context); var label = route?.isCurrent ?? false; return Text('$label'); } } void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: ActiveLabel(), ), ), ), ); }

На экране по центру true: корневой ModalRoute сейчас верхний и активный.

Пример

Давайте прочитаем arguments через ModalRoute:

import 'package:flutter/material.dart'; class ModalArgsPage extends StatelessWidget { const ModalArgsPage({super.key}); @override Widget build(BuildContext context) { var args = ModalRoute.of(context)?.settings.arguments; return Scaffold( body: Center( child: Text('$args'), ), ); } } void main() { runApp( MaterialApp( home: Builder( builder: (context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute<void>( settings: const RouteSettings( arguments: '12345', ), builder: (ctx) => const ModalArgsPage(), ), ); }, child: const Text('abcde'), ), ), ); }, ), ), ); }

На втором экране по центру '12345' из settings ModalRoute.

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

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