Android 14后退按钮关闭flutter应用程序而不是弹出

问题描述 投票:0回答:1

我已经有一段时间遇到了 Flutter 和 GoRouter 的令人抓狂的问题,当我按下手机的后退按钮时,它要么最小化应用程序,要么关闭它,而不是弹出到上一页。这似乎只是 Android 14 上的问题,并且在早期 Android 版本上完美运行

我使用 PopScope 来处理弹出窗口 就像我说的,Popping 在应用程序内以及使用较旧的 Android 版本时工作正常,但在按下 Android 自己的后退按钮时,它无法在 v14 上工作 我目前在我的三星以及使用 Android 14 的 Android 模拟器上遇到了这种情况

我看过类似的帖子,但没有与此问题完全相关的内容

我恳请任何知道如何解决此问题的人提供帮助...是的,我已阅读文档

我在 GoRouter 中尝试了一系列更改,甚至用其他东西替换了 PopScope,并以另一种形式询问了它,我也调查了
https://docs.flutter.dev/release/writing-changes/android-predictive-back
这也没有解决问题
在 StackOverflow 上也研究了类似的问题

我认为 GoRouter 的 backButtonDispatcher 与 Android 14 配合得不好

有什么想法吗?

我的路由器就是这样设置的

GoRouter router = GoRouter(
  initialLocation: LoginScreen.routeName,
  debugLogDiagnostics: true,
  routes: <RouteBase>[
    GoRoute(
      path: LoginScreen.routeName,
      name: LoginScreen.title,
      pageBuilder: (context, state) => MaterialPage<void>(
        key: state.pageKey,
        child: const LoginScreen(),
      ),
    ),
    GoRoute(
      path: PinScreen.routeName,
      name: PinScreen.title,
      pageBuilder: (context, state) => MaterialPage<void>(
        key: state.pageKey,
        child: const PinScreen(),
      ),
    ),
And my main is setup like
 return MaterialApp.router(
      scaffoldMessengerKey: scaffoldMessengerKey,
      title: 'My APP',
      localizationsDelegates: const [
        AppLocalizationsDelegate(),
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      locale: AppLocalizations.getStoredLocale(),
      supportedLocales: const [
        Locale('en'),
        Locale('af'),
      ],
      theme: ThemeData(brightness: Brightness.light, useMaterial3: false),
      darkTheme: ThemeData(brightness: Brightness.dark, useMaterial3: false),
      routerConfig: router,
    );
android flutter dart flutter-dependencies flutter-go-router
1个回答
0
投票

尝试更新flutter版本,在我的项目中我更新了版本并解决了

© www.soinside.com 2019 - 2024. All rights reserved.