This commit is contained in:
toly
2023-09-22 09:15:11 +08:00
parent d456e3c523
commit e95c34018e
132 changed files with 8527 additions and 17 deletions

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'pages/page_a.dart';
import 'pages/page_b.dart';
import 'pages/page_c.dart';
import 'pages/home_page.dart';
void main() {
runApp(const MyApp());
@@ -23,25 +23,26 @@ class MyApp extends StatelessWidget {
titleTextStyle: TextStyle(color: Colors.black,fontSize: 18,fontWeight: FontWeight.bold)
)
),
home: const PageA(),
onUnknownRoute: _onUnknownRoute,
initialRoute: '/a/b',
onGenerateRoute: _onGenerateRoute,
);
}
Route? _onUnknownRoute(RouteSettings settings) {
Route? _onGenerateRoute(RouteSettings settings) {
String? name = settings.name;
Widget? page ;
if(name=='/'){
page = const HomePage();
}
if(name=='/a'){
page = const PageA();
}
if(name=='/b'){
if(name=='/a/b'){
page = const PageB();
}
if(name=='/c'){
page = const PageC();
}
if(page!=null){
return MaterialPageRoute(builder: (_)=> const PageB());
return MaterialPageRoute(builder: (_)=> page!,settings: settings);
}
return null;
}

View File

@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
const Color bgColor = Color(0xffFFE6CD);
return Scaffold(
backgroundColor: bgColor,
appBar: AppBar(
title: const Text('主页面'),
backgroundColor: bgColor,
),
body: Center(
child: ElevatedButton(
onPressed: ()=>toPageA(context),
child: const Text('Push A'),
),
),
);
}
void toPageA(BuildContext context){
Navigator.of(context).pushNamed('/a');
}
}

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'page_c.dart';
import 'home_page.dart';
class PageB extends StatelessWidget {
const PageB({super.key});
@@ -17,13 +17,13 @@ class PageB extends StatelessWidget {
body: Center(
child: ElevatedButton(
onPressed: ()=>toPageC(context),
child: const Text('Push C'),
child: const Text('回到主界面'),
),
),
);
}
void toPageC(BuildContext context){
Navigator.of(context).push(MaterialPageRoute(builder: (_)=> const PageC()));
Navigator.of(context).popUntil(ModalRoute.withName('/'));
}
}

View File

@@ -1,21 +0,0 @@
import 'package:flutter/material.dart';
class PageC extends StatelessWidget {
const PageC({super.key});
@override
Widget build(BuildContext context) {
const Color bgColor = Color(0xffFFE6CD);
return Scaffold(
backgroundColor: bgColor,
appBar: AppBar(
title: const Text('C'),
backgroundColor: bgColor,
),
body: const Center(
child: Text('到达终点'),
),
);
}
}