系统后退导航使用 PopScope 最小化 Android 应用程序(Flutter)

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

我是 Flutter 新手,我的 Flutter 应用程序遇到问题。

Navigator.pop(context);
不适用于 Android 系统后退导航按钮按下。当我在屏幕上使用自定义按钮并弹出时,它可以毫无问题地向后导航,但是当我按下系统后退导航时,应用程序会最小化而不是向后导航。

我想知道我做错了什么。

设置,

• 在 Android 14 模拟器上运行。 •颤动3.24.2 飞镖3.5.2 •开发工具2.37.2

在 AndroidManifest.xml 上也启用了enableOnBackInvokedCallback

       <activity
            android:requestLegacyExternalStorage="true"
            android:usesCleartextTraffic="true"
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:taskAffinity=""
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize"
            android:enableOnBackInvokedCallback="true">

我的实现示例

  void _onBackPressed() {
    Navigator.pop(context);
  }
  
  Widget build(BuildContext context) {
    return PopScope(
      canPop: false,
      onPopInvokedWithResult: (didPop, result) {
        if (didPop) return;
 
        _onBackPressed();
        // print('navigate_back : $didPop --- $result');
      },
      child: Scaffold(
        appBar: CommonHeader(
          isWP: false,
          titleText: AppStrings.beCalm,
          onBackPressed: _onBackPressed,
        ),
        body: Container(
         

来自

CommonHeader
型号的后退导航正常工作,系统后退按钮按下不起作用。

寻求您的帮助来确定问题。 预先感谢

android flutter
1个回答
0
投票

问题是这一行 -->

return PopScope(canPop: false,
这将不允许 Android 后退按钮向后导航。您需要删除它或将其设置为 true。现在,如果您想在 IOS 而不是 Android 上使用 false,您只需使用
Platform.isAndroid ? true : false
中的
import 'dart:io' 
进行检查即可。

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