面试题答案
一键面试- 使用
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'), ), ); } }
Navigator.push
第二个参数(可选)的作用:Navigator.push
的第二个参数通常是一个Route
对象,常见的如MaterialPageRoute
。它用于定义如何创建新的页面,包括页面的过渡动画、页面构建等。例如MaterialPageRoute
会使用平台默认的过渡动画(如淡入淡出等)来显示新页面,并且通过builder
回调函数构建新页面的UI。它允许开发者自定义页面切换的行为和新页面的创建方式,使页面导航更加灵活和可定制。