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中预加载本地图像资源所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)