我定义了ontap方法来导航到SecondRoute类,但它导致黑屏。为解决此问题,我也用Scaffold替换了MaterialApp但没有找到运气
class FirstMain extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body:TabviewWidget(),
drawer: Drawer(
child: ListView(
children: <Widget>[
ListTile(
title: Text('Item 2'),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondRoute()),
);
},
),
],
),
),
);
}
}
class SecondRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Second Route"),
),
body: Center(
child: RaisedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Go back!'),
),
),
);
}
}
我应该打开SecondRoute,但出现黑屏
答案 0 :(得分:0)
您遇到层次结构问题。应该是这样的:
void main(){
runApp(MaterialApp(home: HomePage()); // => HomePage is a Scaffold
}
class HomePage extends StatefulWidget....
或
import 'package:flutter/material.dart';
void main(){
runApp(App());
}
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
@override
Widget build(BuildContext context) {
return MaterialApp(home: HomePage(),);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}