我讀過幾篇關于“查找停用的小部件的祖先是不安全的”錯誤的 stackoverflow 帖子,但找不到有效的答案。
我試圖用腳手架設定一個全域鍵,并使用 WidgetsBinding.instance.addPostFrameCallback() 沒有成功。
我很確定我正在做一些愚蠢且易于修復的事情,但我無法弄清楚是什么。
這是代碼的簡單版本,當您從 PhotoViewPage(photo_view 包)回傳時,它會復制錯誤:
my_home_page.dart
import 'package:flutter/material.dart';
import 'package:phototest/photo_view_page.dart';
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return TextButton(
child: const Text("to PhotoView"),
onPressed: () => _toPhotoView(context),
);
}
void _toPhotoView(BuildContext context) {
Navigator.of(context).push(
MaterialPageRoute<dynamic>(
builder: (BuildContext context) => const PhotoViewPage(),
),
);
}
}
photo_view_page.dart
import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';
class PhotoViewPage extends StatelessWidget {
const PhotoViewPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return PhotoView(imageProvider: AssetImage("assets/image.png"));
}
}
uj5u.com熱心網友回復:
我不確定錯誤來自哪里,但是將顫振通道從 master 切換到 stable 修復了它。
flutter channel stable
flutter upgrade --force
uj5u.com熱心網友回復:
看起來你需要把你的PhotoView里面另一個Widget:
@override
Widget build(BuildContext context) {
return Container(
child: PhotoView(
imageProvider: AssetImage("assets/image.png"),
)
);
}
查看官方檔案中的最小示例。他們也沒有PhotoView直接回傳。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387218.html
下一篇:為字符出現制作堆疊條形圖
