代码如下:
3个文件home、main和screen1
主要:
import 'package:flutter/material.dart';
import 'home.dart';
import 'screen1.dart';
void main() {
runApp(MaterialApp(
home: Home(),
routes:
{
'/home' : (context) => Home(),
'/screen1': (context) => Screen1()
},
));
}
主页:
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: (){Navigator.pushReplacementNamed(context, '/screen1');},
child: Text('screen 1'),
),
),
);
}
}
屏幕1:
import 'package:flutter/material.dart';
Widget homeDialog(BuildContext context){
return AlertDialog(
title: const Text('Do you want to exit'),
actions: [
ElevatedButton(
child: const Text('No'),
onPressed: (){
Navigator.pop(context);
},
),
ElevatedButton(
child: const Text('Yes'),
onPressed: (){
Navigator.pushReplacementNamed(context, '/home');
},
),
],
);
}
class Screen1 extends StatefulWidget {
const Screen1({Key? key}) : super(key: key);
@override
State<Screen1> createState() => _Screen1State();
}
class _Screen1State extends State<Screen1> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text('screen 1'),
leading: GestureDetector(
onTap: (){showDialog(context: context, builder: homeDialog);},
child: Icon(Icons.home)
),
),
);
}
}