Flutter   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了dart – 在Flutter中预加载本地图像资源大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的图像资源列表,我在屏幕上有一个图像小部件.我使用一个按钮循环浏览它们,使用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,]
      )
    );
  }

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

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

See attached GIF for a loose approximation.@H_944_10@

解决方法

确保将gaplessPlayBACk设置为true以用于图像.

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

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

var img = new Image.asset(
  _photoData[_coverPhoto],gaplessPlayBACk: true,);

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。