這是我遇到的問題=>構建 CupertinoNavigationBarBackButton(dirty, dependencies: [_ModalScopeStatus]): CupertinoNavigationBarBackButton 應該只用于可以彈出的路由'package:flutter/src/cupertino/nav_bar.dart' :斷言失敗:第 1333 行 pos 9:'currentRoute?.canPop == true'
我真的不明白這種情況,因為我使用前 2 頁沒有問題,但最后一頁出現問題。
這是我的相關代碼部分:(第三頁)
@override
Widget build(BuildContext context) {
final name = basename(widget.file!.path);
if(Platform.isIOS){
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
leading: CupertinoNavigationBarBackButton(
color: CupertinoColors.white,
),
這是他如何來到這里的方式:(第一頁)
CupertinoButton(
padding: EdgeInsets.all(0),
child: Icon(CupertinoIcons.list_bullet, color: CupertinoColors.white,),
onPressed: () => {
Navigator.push(context, CupertinoPageRoute(builder: (context) => ConsumptionReportsScreen(location: widget.location)))
}
),
(第二頁)
onTap: () async {
// final file = await PDFApi.loadNetwork(reports[index].pdfUrl);
const url = 'https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf';
final file = await PDFApi().loadNetwork(url);
Navigator.push(context, CupertinoPageRoute(builder: (context) => PdfViewerScreen(file: file)));
},
uj5u.com熱心網友回復:
您收到的錯誤表明您當前所在的頁面無法彈出。
Failed assertion: line 1333 pos 9: 'currentRoute?.canPop == true'
您確定堆疊中有可以彈出的頁面嗎?
uj5u.com熱心網友回復:
首先回傳一個材質應用程式,并在其中使用 CupertionoPageScaffold() 作為主頁,我希望這會有所幫助
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
if(Platform.isIOS){
return MaterialApp(
home: CupertinoPageScaffold(
child: Container(),
),
);
}else {
return MaterialApp(
home: Scaffold(),
);
}
}
}
uj5u.com熱心網友回復:
試試下面的代碼,我嘗試了其他方式
CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
backgroundColor: CupertinoColors.activeGreen,
middle: const Text('Sample Code'),
leading: GestureDetector(
onTap: () {
print('Button Pressed');
Navigator.of(context).pop();
},
child: Icon(
CupertinoIcons.left_chevron,
color: CupertinoColors.white,
),
),
),
child: Container(),
),
結果螢屏->
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/452648.html
上一篇:我們是否需要AndroidSDK,IOSSDK以及FlutterSDK分別用于Flutter應用程式
下一篇:在Swift中合并子陣列