今天在写flutter的demo时调用pop结果黑屏了,原因在于我们使用Navigator.pop(context);
时,此时的context并不是当前页面 Build时的context,而是上个界面的context,这样导致我们pop的时候,实际上并不是当前页面,而是关闭了上个界面,所以,出现了黑屏的问题。如下修改代码:
import 'package:flutter/material.dart';
class RouterActivity2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "Router",
theme: ThemeData(primaryColor: Colors.blue),
home: RouterActivityB(context),
);
}
}
class RouterActivityB extends StatelessWidget {
BuildContext pageContext;
RouterActivityB(this.pageContext);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: FlatButton(
onPressed: (){
Navigator.of(pageContext).pop();
},
child: Icon(Icons.arrow_back, color: Colors.white,),
),
title: Text("第二个页面"),
),
body: Container(
child: SizedBox.expand(
child: Center(
child: FlatButton(onPressed: () {
Navigator.pop(context);
}, child: Text("这是第二个界面", style: TextStyle(fontSize: 23, color: Colors.black87),)),
)
),
),
);
}
}