当目标英雄位于 FutureBuilder 中时,我正在绞尽脑汁寻找一种简单的方法来使英雄动画正常工作。我知道这是行不通的,因为英雄图像必须出现在第二个屏幕的第一帧上,而通过 FutureBuilder 从 Firestore 获取数据时显然不能出现这种情况。
这是我的代码:
第一个屏幕:
Hero(
tag: "postImage",
child: Image.network(post.imageurl),
),
Run Code Online (Sandbox Code Playgroud)
第二个屏幕:
FutureBuilder(
future: _futurePost,
builder: (context, AsyncSnapshot snapshot) {
[...]
return Hero(
tag: "postImage",
child: Image.network(snapshot.data.imageurl),
);
}
)
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?我很惊讶这不是一个常见问题!
谢谢你!
我正在尝试创建一个具有多个元素的英雄动画,到目前为止我的代码如下:
主要.dart:
import 'package:animations/animations.dart';
import 'package:flutter/material.dart';
import 'package:flutter_playground/screen_two.dart';
import 'package:flutter_playground/transition/hero_dialog_route.dart';
import 'package:flutter_playground/transition/hero_page_route.dart';
import 'package:flutter_playground/transition_open_container_wrapper.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try …Run Code Online (Sandbox Code Playgroud)