我有一个设置,其中我有一个带有gif的警告对话框。当对话框打开时,我希望gif只播放一次,这是我用这篇文章中最好的答案实现的:
How to stop GIF loop in flutter?
问题是,当我重新打开对话框时,gif不会再次播放。我不确定这是框架的问题还是gif资源本身的问题。
任何帮助都将不胜感激。
编辑:根据@Johnnyxsx的请求,这里是我的带有相关组件的代码的最小版本。
import 'package:flutter/material.dart';
import 'package:geocash_flutter/services/size_config.dart';
class LoseDialog extends StatefulWidget {
const LoseDialog({Key key}) : super(key: key);
@override
_LoseDialogState createState() => _LoseDialogState();
}
class _LoseDialogState extends State<LoseDialog>{
@override
Widget build(BuildContext context) {
SizeConfig().init(context);
return WillPopScope(
onWillPop: () async => false,
child: AlertDialog(
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset(
'assets/lose.gif',
height: 35.0 * SizeConfig.blockSizeVertical,
),
],
),
),
);
}
}
发布于 2021-06-03 10:24:43
经过一番寻找,我终于找到了我的问题的解决方案。我创建了gif作为一个AssetImage,并调用了它的evict方法,如下面的GitHub问题所示。
https://stackoverflow.com/questions/67795789
复制相似问题