Flutter Image如何在下一个构建中从上一个构建停止的特定帧开始创建gif



我正在尝试设计一个启动屏幕。有一个gif显示在启动屏幕中。显示gif没有问题。

问题是,当页面重建时,gif会从第一帧重新启动。在我的用例中,由于提供程序侦听firebase用户,因此需要重建。

我的问题是,我如何确保gif在下一次构建中从上一次构建时停止的特定帧开始。

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:provider_architecture/provider_architecture.dart';
import 'package:myproject/core/viewmodels/startup_view_model.dart';
class StartUpView extends StatelessWidget {
@override
Widget build(BuildContext context) {
FirebaseUser user = Provider.of<FirebaseUser>(context);
ScreenUtil.init(context, width: 411, height: 683, allowFontScaling: true);
return ViewModelProvider<StartUpViewModel>.withConsumer(
viewModel: StartUpViewModel(),
builder: (context, model, child) {
model.handleStartUpLogic(user);
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Image.asset('assets/images/lock.gif', height: 100.h)
],
),
),
);
},
);
}
}

这很有趣。我的问题与你的完全相反。我希望每次加载gif时都从头开始,但它总是从上次停止的帧开始。

return SafeArea(
child: Scaffold(
backgroundColor: Colors.black,
appBar: AppBar(
backgroundColor: Colors.black,
title: Text(
getImageName(),
),
centerTitle: true,
),
body: Center(
child: Column(

children: <Widget>[
Expanded(
child: Image (
height: height * 0.75,
width: width * 0.75,
image: AssetImage(getGuideImagePath()),
)
),

但是,对于您的问题,此实现可能会对您有所帮助。

https://www.youtube.com/watch?v=xZ9vdVkI4Vc&feature=youtu.be

https://github.com/aliyigitbireroglu/flutter-image-sequence-animator/tree/master/image_sequence_animator

最新更新