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实现手势滑动多点触摸放大缩小图片效果

    这篇文章主要介绍了Android实现手势滑动多点触摸放大缩小图片效果的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Android性能优化之Bitmap图片优化详解

    Android性能优化之Bitmap图片优化详解

    在Android项目的imageview中使用大图bitmap时会占据很大的内存,而且在很多时候我们并不需要显示原图那么大的图片, 所以我们需要对图片进行优化,这篇文章主要介绍了Android性能优化之Bitmap图片优化的相关资料,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Android开发跳转应用市场进行版本更新功能实现

    Android开发跳转应用市场进行版本更新功能实现

    这篇文章主要为大家介绍了Android实现跳转到应用市场进行版本更新功能,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • FlowLayout流式布局实现搜索清空历史记录

    FlowLayout流式布局实现搜索清空历史记录

    这篇文章主要为大家详细介绍了FlowLayout流式布局实现搜索清空历史记录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • android判断动画已结束示例代码

    android判断动画已结束示例代码

    添加一个动画效果,发现动画没执行完 就直接跳转或者finish掉,添加动画监听事件即可,示例代码如下
    2014-10-10
  • Android开发实现在TextView前面加标签示例

    Android开发实现在TextView前面加标签示例

    这篇文章主要为大家介绍了Android开发实现TextView前面加标签示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Android使用CountDownTimer类实现倒计时闹钟

    Android使用CountDownTimer类实现倒计时闹钟

    这篇文章主要为大家详细介绍了Android使用CountDownTimer类实现倒计时闹钟,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解析Android中webview和js之间的交互

    解析Android中webview和js之间的交互

    本篇文章是对Android中webview和js之间的交互进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • Android系统工具类详解

    Android系统工具类详解

    这篇文章主要为大家详细介绍了Android系统工具类的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android中使用Kotlin实现一个简单的登录界面

    Android中使用Kotlin实现一个简单的登录界面

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。接下来本文通过实例代码给大家讲解Android中使用Kotlin实现一个简单的登录界面,一起看看吧
    2017-09-09

最新评论