我在main.dart
中有一个AppBar
,我想将其定义为子元素的主要内容,但是在子页面上时,我想要改变AppBar
本身的标题,我应该如何正确地实现这一点呢?
void main() => runApp(MyApp());
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Flutter App",
theme: ThemeData(
primaryColor: Colors.cyan,
brightness: Brightness.dark
),
home: Scaffold(
appBar: AppBar(
title: Text("Main Dart"),
),
body: HomeScreen(),
),
routes: <String, WidgetBuilder>{
'/homeScreen': (buildContext)=>HomeScreen(),
'/second': (buildContext)=>Second()
},
);
}
}
//HomeScreen or Second Widget on different dart file
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
//here I want to change the title of Main Dart to HomeScreen
return Container(
child: Center(
child: FlatButton(
child: new Text("Home screen"),
onPressed: (){
Route route = MaterialPageRoute(builder: (context) => Second());
Navigator.push(context, route);
},
),
),
);
}
}
我需要在每个屏幕上使用Scaffold(appBar:AppBar(...),...)
吗?这是最好的方法吗?
Second
类吗?你在每个路由中都使用 Scaffold 吗? - DocScaffold
,所以我的second
路由和HomeScreen
相同。 - flix