我有带有嵌套导航器的 Flutter 应用程序,我想WillPopScope在我的嵌套屏幕中使用覆盖“onBackPressed” 。
假设我有MainScreen, PrimaryScreen, 和SecondaryScreen。
PrimaryScreen嵌套导航仪,它有几个屏幕一样PrimaryOneScreen,PrimaryTwoScreen和PrimaryThreeScreen。
SecondaryScreen也是一个嵌套的 Navigator,就像PrimaryScreen,它有 3 个屏幕。
这是我想要实现的目标的说明
MainScreen-> PrimaryScreen( PrimaryOneScreen-> PrimaryTwoScreen-> PrimaryThreeScreen)
当我在 上的位置时PrimaryTwoScreen,我想回到PrimaryOneScreen使用WillPopScopeWidget覆盖“onBackPressed”的状态。但是onWillPop当我按下后退按钮时从未调用过,我的屏幕直接返回到MainScreen.
这是我的代码
主屏幕.dart
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData( …Run Code Online (Sandbox Code Playgroud) 我无法访问推送到当前导航器的小部件中的提供程序:
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyModel with ChangeNotifier {
String a = 'Test1';
String b = 'Test2';
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: ChangeNotifierProvider(
create: (context) => MyModel(),
child: MyHomePage()
)
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Consumer<MyModel>( …Run Code Online (Sandbox Code Playgroud)