I have a set up where I have an alert dialog with a gif in it. When the dialog opens, I want the gif to only play once, which I was able to accomplish with the top answer on this post:
How to stop GIF loop in flutter?
The problem is that the gif won't play a second time when I reopen the dialog. I'm not sure if this is a problem with the framework or the gif resource itself.
Any help would be appreciated.
EDIT: Per request by @Johnnyxsx, here's a minimal version of my code with the pertinent components.
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,
            ),
          ],
        ),
      ),
    );
  }
}
                After some searching, I finally found a solution to my problem. I created the gif as an AssetImage and called the evict method on it as shown in the following GitHub issue.
https://github.com/flutter/flutter/issues/51775
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With