9
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
28
lib/06/02/pages/home_page.dart
Normal file
28
lib/06/02/pages/home_page.dart
Normal 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');
|
||||
}
|
||||
}
|
||||
@@ -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('/'));
|
||||
}
|
||||
}
|
||||
@@ -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('到达终点'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user