Я пытаюсь заставить приложение, указанное ниже, печатать Build при возврате на главную страницу с одной из других страниц.
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
initialRoute: '/Home',
routes: {
'/Home': (context) => Home(),
'/First': (context) => First(),
'/Second': (context) => Second(),
},
),);
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
void initState() {
super.initState();
print('Initialisation');
}
@override
Widget build(BuildContext context) {
print('Build');
return Scaffold(
appBar: AppBar(title: Text('Homepage')),
body: Center(
child: RaisedButton(
onPressed: () {
Navigator.pushNamed(context, '/First');
},
child: Text('Move to the first page'),
),
),
);
}
}
class First extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('First')),
body: Center(
child: RaisedButton(
onPressed: () {
Navigator.pushNamedAndRemoveUntil(context, '/Second', ModalRoute.withName('/Home'));
},
child: Text('Move to the second page'),
),
),
);
}
}
class Second extends StatefulWidget {
@override
_SecondState createState() => _SecondState();
}
class _SecondState extends State<Second> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Second')),
);
}
}
Прямо сейчас я считаю, что возможно, аспект leading
виджета AppBar()
можно отредактировать так, чтобы это могло произойти, но я действительно не уверен. Буду очень признателен за ваше время и любые предложения, которые у вас могут быть.