Flutter Reusable Lottie Animations技巧

 更新时间:2022年12月08日 14:41:50   作者:程序员界的小学生  
这篇文章主要为大家介绍了Flutter Reusable Lottie Animations技巧,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

你是否想要在app里面新增一些炫酷的动画,但是呢?虽然Flutter提供了很多的动画,但是自己绘制吧,要么效果调整上过于耗费时间了,要么效果不尽人意。

专业的事情交给专业的人,如果动画是设计师提供并且能拿来使用,那就太好了!!!

曾经使用过gif,现在发现lottie动画,太香了~

封装相关加载数据使用的lottie动画

下面是我封装的有关加载数据使用的lottie动画

用关键值在枚举中定义动画,每个值都是磁盘上动画文件的名字。

enum LottieAnimation {
    dataNotFound(name: 'data_not_found'),
    empty(name: 'empty'),
    loading(mame: 'loading'),
    error(name: 'error'),
    smallError(name: 'small_error');
    final String name;
    const LottieAnimation({
        required this.name,
    });
}

创建一个基类,所有其他动画类都从该基类派生。这个类完全负责使用磁盘上的assets来呈现lottie动画。

在build方法里面,我们通过Lottie.asset返回一个实际的小部件。

class LottieAnimationView extends StatelessWidget {
    final LottieAnimation animation;
    final bool repeat;
    final bool reverse;
    const LottieAnimationView({
        super.key,
        required this.animation,
        this.repeat = true,
        this.reverse = false,
    });
    @override
    Widget build(BuildContext context) => Lottie.asset(
        animation.fullPath,
        reverse: reverse,
        repeat: repeat,
    );
}

给LottieAnimation增加一个拓展,获取文件全路径

extension GetFullPath on LottieAnimation {
    String get fullPath => 'assets/animationss/$name.json';
}

然后定义子类,只把lottie动画的名字传递给父类,你就可以开始是了!

class EmptyContentsAnimationView extends LottieAnimationView {
    const EmptyContentssAnimationView({super.key}) : super(
        animation: LottieAnimation.empty,
    );
}

测试一下

class HomePage extends StatelessWidget {
    const HomePage({Key? key}) : super(key: key);
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
                title: const Text('Home Page'),
            ),
            body: const EmptyCOntentsAnimationView(),
        );
    }
}

搞定,接下来我得研究研究 如何制作一个lottie动画了,更多关于Flutter Lottie Animations的资料请关注脚本之家其它相关文章!

相关文章

  • Android实现粒子中心扩散动画效果

    Android实现粒子中心扩散动画效果

    粒子动画效果相比其他动画来说是非常复杂了的,主要涉及三个方面,粒子初始化、粒子位移、粒子回收等问题,本篇将实现两种动画效果,代码基本相同,只是旋转速度不一样,需要的朋友可以参考下
    2024-02-02
  • Android中viewPager使用指南

    Android中viewPager使用指南

    这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢
    2016-01-01
  • Android封装的http请求实用工具类

    Android封装的http请求实用工具类

    提供一个Android封装的http请求实用工具类,在做ANDROID网络开发中这个经常要用到,大家可以参考下面的工具类修改成自己的工具
    2013-11-11
  • Flutter进阶之实现动画效果(七)

    Flutter进阶之实现动画效果(七)

    这篇文章主要为大家详细介绍了Flutter进阶之实现动画效果的第七篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android图片压缩方法并压缩到指定大小

    Android图片压缩方法并压缩到指定大小

    本文给大家分享android图片压缩的三种方法并压缩到指定大小,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • Android开发必备技巧之高效字符串筛选

    Android开发必备技巧之高效字符串筛选

    在开发过程中或多或少都要使用一些方法去筛选符合我们要求的字符串,所以下面我们就来介绍一些在开发工作中常用到的字符串筛选方法,让大家都能掌握高效的字符串筛选技巧吧
    2023-06-06
  • 深入剖析Android消息机制原理

    深入剖析Android消息机制原理

    本篇文章主要介绍了Android消息机制,深入的了解了android的消息机制,需要的朋友可以了解一下、
    2016-11-11
  • android弹出activity设置大小的方法

    android弹出activity设置大小的方法

    本篇文章介绍了android弹出activity设置大小的方法,需要的朋友可以参考一下
    2013-06-06
  • Android开发之时间日期组件用法实例

    Android开发之时间日期组件用法实例

    这篇文章主要介绍了Android开发之时间日期组件用法,主要介绍了TimePicker和DatePicker组件,对于Android程序开发有不错的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现

    Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现

    这篇文章主要介绍了Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02

最新评论