dart – 在Flutter中预加载本地图像资源

dart – 在Flutter中预加载本地图像资源,第1张

概述我有一个简单的图像资源列表,我在屏幕上有一个图像小部件.我使用一个按钮循环浏览它们,使用setState(). const List<String> _photoData = const [ "assets/generic-cover.jpg", "assets/generic-cover2.jpg", "assets/generic-cover3.jpg", "assets/ge @H_419_4@ 我有一个简单的图像资源列表,我在屏幕上有一个图像小部件.我使用一个按钮循环浏览它们,使用setState().

const List<String> _photoData = const [  "assets/generic-cover.jpg","assets/generic-cover2.jpg","assets/generic-cover3.jpg","assets/generic-cover4.jpg",];class _MyHomePageState extends State<MyHomePage> {  int _coverPhoto = 0;  voID _switchCoverPhoto() {    setState(() {      _coverPhoto++;      if (_coverPhoto == _photoData.length) {         _coverPhoto = 0;      }    });  }  @overrIDe  Widget build(BuildContext context) {    return new Scaffold(      body: new Stack(        children: <Widget>[          new Image.asset (            _photoData[_coverPhoto],fit: ImageFit.cover,height: 600.0,),new positioned ( // photo toggle button            child: new Iconbutton(              icon: new Icon (Icons.photo),onpressed: _switchCoverPhoto,color: colors.white,top: 32.0,right: 32.0,]      )    );  }

第一张图片渲染得很好.但是,当我调用_switchCoverPhoto()时,在显示“assets / generic-cover2.jpg”之前会有一个简短的白色闪烁.

这导致了一个简单的问题:是否有一种简单的方法可以将后续图像(或图像)预加载到内存中,以便事先没有闪存?

See attached GIF for a loose approximation.

@H_419_4@解决方法 确保将gaplessplayback设置为true以用于图像.

这不会解决预加载问题,但在切换资产时会阻止图像闪烁为白色.

将gaplessplayback设置为true时,原始图像将保留,直到新图像完成加载并且不会出现“白色闪烁间隙”.

var img = new Image.asset(  _photoData[_coverPhoto],gaplessplayback: true,);
@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结

以上是内存溢出为你收集整理的dart – 在Flutter中预加载本地图像资源全部内容,希望文章能够帮你解决dart – 在Flutter中预加载本地图像资源所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存