flutter - 带有新文件飞镖的页面路由
问题描述
如何使用MaterialPageRoute
新文件飞镖?
我的代码:
主要.dart
import 'package:flutter/material.dart';
import 'package:hello_world/settings_page.dart';
void main() => runApp(Belajar());
class Belajar extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
leading: Icon(Icons.android),
title: Text('Hello World'),
actions: [
IconButton(
icon: Icon(Icons.settings),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return SettingsPage();
},
),
);
},
)
],
),
),
);
}
}
settings_page.dart
import 'package:flutter/material.dart';
class SettingsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(context);
},
),
),
);
}
}
我试过上面的代码。但是,给我一个错误:
Navigator operation requested with a context that does not include a Navigator.
我的代码有什么问题?
解决方案
你只缺少一件事
MaterialApp(
home:Builder(
//use this context to push new route
builder:(context){
return Scaffold(
appBar://..
);
}
)
)
这里builder将引入一个新的上下文,其中将包含由material app引入的导航器
推荐阅读
- mule-component - 工作目录在 mule 4 中不存在
- firefox - 只想在 Firefox 中加载 JavaScript 和 HTML。其他一切都应该被阻止。(节省 RAM 和 CPU 使用率)
- android - HorizontalScrollView 很难滚动
- java - 在 ubuntu 上配置 eclipse 以使用我的 jdk 版本
- javascript - 将两个无穷大相加/相乘得到无穷大,而将两个无穷大相减/除以得到 NaN
- java - 如何从递归方法中找到变量值?
- python - python中的for循环查询
- java - 将首选项迁移到 AndroidX
- c# - 如何从 FormCollection 返回对象列表?
- java - Java - 停止 Info / Init 打印到控制台