我是 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
型号的后退导航正常工作,系统后退按钮按下不起作用。
寻求您的帮助来确定问题。 预先感谢
问题是这一行 -->
return PopScope(canPop: false,
这将不允许 Android 后退按钮向后导航。您需要删除它或将其设置为 true。现在,如果您想在 IOS 而不是 Android 上使用 false,您只需使用 Platform.isAndroid ? true : false
中的 import 'dart:io'
进行检查即可。