MST

星途 面试题库

面试题:Flutter中Navigator管理页面栈的基本操作

在Flutter应用中,如何使用Navigator.push方法向页面栈中添加一个新页面?请给出代码示例,并简要说明Navigator.push的第二个参数(可选)有什么作用。
13.0万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试
  1. 使用Navigator.push向页面栈中添加新页面的代码示例
    import 'package:flutter/material.dart';
    
    class FirstScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('First Screen'),
          ),
          body: Center(
            child: ElevatedButton(
              child: Text('Go to Second Screen'),
              onPressed: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => SecondScreen(),
                  ),
                );
              },
            ),
          ),
        );
      }
    }
    
    class SecondScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Second Screen'),
          ),
          body: Center(
            child: Text('This is the second screen'),
          ),
        );
      }
    }
    
  2. Navigator.push第二个参数(可选)的作用Navigator.push的第二个参数通常是一个Route对象,常见的如MaterialPageRoute 。它用于定义如何创建新的页面,包括页面的过渡动画、页面构建等。例如MaterialPageRoute会使用平台默认的过渡动画(如淡入淡出等)来显示新页面,并且通过builder回调函数构建新页面的UI。它允许开发者自定义页面切换的行为和新页面的创建方式,使页面导航更加灵活和可定制。