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

Класс MaterialPageRoute

Класс MaterialPageRoute наследует ModalRoute и строит страницу через builder. Имя и аргументы задают в settings. Полноэкранный диалог включают через fullscreenDialog. Экземпляр передают в Navigator.push.

Синтаксис

MaterialPageRoute<void>( builder: (context) { return Scaffold( body: Center( child: Text('abcde'), ), ); }, )

Параметры

Параметр Описание
builder Строит виджет страницы. Обязателен.
settings Имя и arguments маршрута. Тип RouteSettings.
fullscreenDialog Открыть как полноэкранный диалог с другой анимацией.
maintainState Сохранять State страницы, когда она не видна.

Пример

Давайте откроем второй экран через MaterialPageRoute:

import 'package:flutter/material.dart'; class MprHome extends StatelessWidget { const MprHome({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute<void>( builder: (ctx) => Scaffold( appBar: AppBar( title: const Text('12345'), ), body: const Center( child: Text('abcde'), ), ), ), ); }, child: const Text('open'), ), ), ); } } void main() { runApp( MaterialApp( home: MprHome(), ), ); }

На экране по кнопке open страница съедет с анимацией Material и покажет AppBar '12345'.

Пример

Давайте зададим имя маршрута в settings:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Builder( builder: (context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { var route = MaterialPageRoute<void>( settings: const RouteSettings( name: '/detail', ), builder: (ctx) => const Scaffold( body: Center( child: Text('12345'), ), ), ); Navigator.push(context, route); }, child: const Text('abcde'), ), ), ); }, ), ), ); }

На экране push откроет именованный маршрут '/detail' с текстом '12345'.

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

  • класс PageRouteBuilder,
    Route со своей анимацией
  • класс Route,
    базовый тип маршрута
  • метод push,
    кладёт MaterialPageRoute на стопку
  • класс RouteSettings,
    имя и arguments для settings
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить