Flutter:无法导航到另一个页面
Flutter: Can't navigate to another page
因此,在构建了我的第一个 Flutter 页面之后,我开始为我的应用开发其他一些 Flutter 页面。我成功制作了另外两个 flutter 页面,并且能够允许用户在两者之间导航,但是当我尝试允许用户在原始 flutter 页面上导航到其他两个 flutter 页面中的任何一个时,没有任何反应。
注意:导航的代码似乎写得正确(它适用于其他两个页面)
注意 2:我导航到另一个页面的行链接到标记为 'View Record'
的凸起按钮
任何人都可以指出此页面中不允许用户导航到另一个页面的任何内容吗?谢谢!
import 'package:flutter/material.dart';
import 'package:faui/faui.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:provendor3/FlutterAuthUiDemoy.dart';
import 'main.dart';
void firestore_page() => runApp(firestore_pagey());
class firestore_pagey extends StatefulWidget {
@override
MyApps createState() => MyApps();
}
class MyApps extends State<firestore_pagey> {
final databaseReference = Firestore.instance;
@override
Widget build(BuildContext context) {
return MaterialApp(home:
Scaffold(
appBar: AppBar(
title: Text('FireStore Demo'),
),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
RaisedButton(
child: Text('Create Record'),
onPressed: () {
createRecord();
},
),
RaisedButton(
child: Text('View Record'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyApp()),
);
},
),
RaisedButton(
child: Text('Update Record'),
onPressed: () {
updateData();
},
),
RaisedButton(
child: Text('Delete Record'),
onPressed: () {
deleteData();
},
),
new Expanded(child:
new StreamBuilder<QuerySnapshot>(
stream: databaseReference.collection('books').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['title']),
subtitle: new Text('${document['description']} description'),
);
}).toList(),
);
},
)
)
],
)),
) //center
);
}
Main.dart
import 'package:flutter/material.dart';
import 'FlutterAuthUiDemoy.dart';
import "firestore_page.dart";
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Builder(
builder: (context) => Scaffold(
appBar: AppBar(
title: Text("Page 1"),
),
body: Center(
child: Column(
children: <Widget>[
MaterialButton(
child: Text("Next Page"),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => FlutterAuthUiDemo()),
);
},
color: Colors.red,
)
],
),
),
),
),
);
你能删除你的 MaterialApp 然后再试一次吗?我假设您的 main.dart 中已经有一个 MaterialApp。
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title: Text('FireStore Demo'),
...
所以,问题似乎出在我导航的页面上。我使用的库似乎在使用后会阻止导航,所以我从它之前的页面中删除了库,现在我可以在页面上正常导航了!感谢大家的帮助!
因此,在构建了我的第一个 Flutter 页面之后,我开始为我的应用开发其他一些 Flutter 页面。我成功制作了另外两个 flutter 页面,并且能够允许用户在两者之间导航,但是当我尝试允许用户在原始 flutter 页面上导航到其他两个 flutter 页面中的任何一个时,没有任何反应。
注意:导航的代码似乎写得正确(它适用于其他两个页面)
注意 2:我导航到另一个页面的行链接到标记为 'View Record'
的凸起按钮任何人都可以指出此页面中不允许用户导航到另一个页面的任何内容吗?谢谢!
import 'package:flutter/material.dart';
import 'package:faui/faui.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:provendor3/FlutterAuthUiDemoy.dart';
import 'main.dart';
void firestore_page() => runApp(firestore_pagey());
class firestore_pagey extends StatefulWidget {
@override
MyApps createState() => MyApps();
}
class MyApps extends State<firestore_pagey> {
final databaseReference = Firestore.instance;
@override
Widget build(BuildContext context) {
return MaterialApp(home:
Scaffold(
appBar: AppBar(
title: Text('FireStore Demo'),
),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
RaisedButton(
child: Text('Create Record'),
onPressed: () {
createRecord();
},
),
RaisedButton(
child: Text('View Record'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyApp()),
);
},
),
RaisedButton(
child: Text('Update Record'),
onPressed: () {
updateData();
},
),
RaisedButton(
child: Text('Delete Record'),
onPressed: () {
deleteData();
},
),
new Expanded(child:
new StreamBuilder<QuerySnapshot>(
stream: databaseReference.collection('books').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['title']),
subtitle: new Text('${document['description']} description'),
);
}).toList(),
);
},
)
)
],
)),
) //center
);
}
Main.dart
import 'package:flutter/material.dart';
import 'FlutterAuthUiDemoy.dart';
import "firestore_page.dart";
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Builder(
builder: (context) => Scaffold(
appBar: AppBar(
title: Text("Page 1"),
),
body: Center(
child: Column(
children: <Widget>[
MaterialButton(
child: Text("Next Page"),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => FlutterAuthUiDemo()),
);
},
color: Colors.red,
)
],
),
),
),
),
);
你能删除你的 MaterialApp 然后再试一次吗?我假设您的 main.dart 中已经有一个 MaterialApp。
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title: Text('FireStore Demo'),
...
所以,问题似乎出在我导航的页面上。我使用的库似乎在使用后会阻止导航,所以我从它之前的页面中删除了库,现在我可以在页面上正常导航了!感谢大家的帮助!