flutter数字动画库:animated_flip_counter

news2024/10/11 0:29:20

前言

在数字动画的制作中,有时候我们会面临时间紧张或效果不尽如人意的情况。这时,使用现成的动画库或工具可以大大提高效率,同时也能够获得更好的效果。animated_flip_counter就是一个非常不错的数字动画库,可以帮助我们快速地创建出令人满意的效果。通过使用这个库,我们可以轻松地实现数字的翻转和动画效果,而无需从头开始编写动画代码,省去了大量的时间和精力的浪费。因此,当我们需要实现数字动画功能时,直接使用animated_flip_counter是一个明智的选择。

ps:上面是文心一言帮忙润色的

使用

官方地址
https://pub-web.flutter-io.cn/packages/animated_flip_counter

安装

flutter pub add animated_flip_counter

示例1

import 'package:animated_flip_counter/animated_flip_counter.dart';

Column(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        Text(
          "无动画:$year",
          style: const TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
        ),
        const SizedBox(
          height: 50,
        ),
        AnimatedFlipCounter(
          value: year,
          duration: const Duration(milliseconds: 500), // 动画持续时间
          textStyle:const TextStyle(fontSize: 30, fontWeight: FontWeight.bold) , // 文本样式
          prefix: "有动画:", // 前缀
        ),
        const SizedBox(
          height: 50,
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            ElevatedButton(
                onPressed: () {
                  setState(() {
                    year += 1;
                  });
                },
                child: const Text("加1")),
            ElevatedButton(
                onPressed: () {
                  setState(() {
                    year -= 1;
                  });
                },
                child: const Text("减1")),
            ElevatedButton(
                onPressed: () {
                  setState(() {
                    year += 10;
                  });
                },
                child: const Text("加10")),
            ElevatedButton(
                onPressed: () {
                  setState(() {
                    year -= 10;
                  });
                },
                child: const Text("减10"))
          ],
        )
      ],
    );

在这里插入图片描述
示例2

添加精度后,会自动处理数字精度计算的问题

 AnimatedFlipCounter(
   value: num,
   fractionDigits: 2, // 设置精度
   duration: const Duration(milliseconds: 500), // 动画持续时间
   textStyle:const TextStyle(fontSize: 30, fontWeight: FontWeight.bold) , // 文本样式
   prefix: "有动画:", // 前缀
 ),

在这里插入图片描述
示例3

注:获取的时间是你手机(模拟器)上的时间,如果手机本身的时间不准确那获取到的时间也不准确;另外是12小时制还是24小时制,也与手机的设置有关。

class SwitcherContainerState extends State<SwitcherContainer> {
  // 时分秒
  int _hour = 0;
  int _minutes = 0;
  int _seconds = 0;

  // 初始化
  
  void initState() {
    super.initState();

    Timer.periodic(
        const Duration(
          seconds: 1,
        ), (timer) {
      setState(() {
        final now = DateTime.now();
        _hour = now.hour;
        _minutes = now.minute;
        _seconds = now.second;
      });
    });
  }

  
  Widget build(BuildContext context) {
    return Center(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          AnimatedFlipCounter(
            value: _hour,
            suffix: ':',
          ),
          AnimatedFlipCounter(
            value: _minutes,
            suffix: ':',
          ),
          AnimatedFlipCounter(
            value: _seconds,
          )
        ],
      ),
    );
  }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/790065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode-每日一题【剑指 Offer II 010. 和为 k 的子数组】

题目 给定一个整数数组和一个整数 k &#xff0c;请找到该数组中和为 k 的连续子数组的个数。 示例 1&#xff1a; 输入:nums [1,1,1], k 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况 示例 2&#xff1a; 输入:nums [1,2,3], k 3输出: 2 提示: 1 < nums.leng…

SIP视频对讲sip广播网关

SV-PA2是专门对行业用户需求研发的一款SIP音视频对讲&#xff0c;媒体流传输采用标准IP/RTP/RTSP协议。它很好的继承了锐科达话机稳定性好、电信级音质的优点&#xff0c;且完美兼容当下所有基于SIP的主流IPPBX/软交换/IMS平台,如Asterisk, Broadsoft, 3CX, Elastix 等。它集多…

linux 使用nethogs命令查看各个进程使用网络的情况

1&#xff0c;使用nethogs命令查看各个进程使用网络的情况 #yum -y install nethogs 2&#xff0c;使用nethogs命令查看进程使用网络的情况 #nethogs

【Docker】Docker部署私有仓库的配置及应用

文章目录 一、Docker-registry 搭建本地私有仓库1. Registry 的概念2. Registry 的部署过程 二、Docker-harbor 搭建私有仓库1. 什么是Harbor2. Harbor 的特性3. Harbor的构成4. Harbor 的部署过程4.1 安装 harbor4.2 创建项目并进行上传下载4.3 上传镜像到私有仓库4.4 从私有仓…

LLM Data Pipelines: 解析大语言模型训练数据集处理的复杂流程

编者按&#xff1a;在训练大语言模型的过程中,构建高质量的训练数据集是非常关键的一步&#xff0c;但关于构建大模型训练所需数据集的通用数据处理流程&#xff08;Data pipelines)的相关资料极为稀少。 本文主要介绍了基于Common Crawl数据集的数据处理流程。首先,文章概述了…

Java版知识付费源码 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台 +支持二次开发定制

提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发…

SNMP协议是什么?

SNMP协议是什么&#xff1f; 简单网络管理协议&#xff08;Simple Network Management Protocol&#xff0c;SNMP&#xff09;是由互联网工程任务组定义的一套网络管理协议。该协议是基于简单网关监视协议&#xff08;Simple Gateway Monitor Protocol&#xff0c;SGMP&#x…

芯片制造详解.晶圆的诞生.学习笔记(二)

芯片制造详解.晶圆的诞生.学习笔记.二 一、硅片的制造二、硅片、晶圆和芯片的区别三、从硅棒到晶圆(1).截断(2).四探针法(3).裁成硅段(4).滚磨(5).研磨定位边(槽)(6).硅段切片(7).磨片(8).倒角(9).打上激光标识码(10).刻蚀(11).化学机械抛光(CMP)(12).湿法清洗(13).检测 包装 四…

Nodejs 安装之后cmd 输入npm -v 提示error的问题解决

1.问题现象&#xff1a; 安装时候选择&#xff1a; 2. 解决问题 卸载nodejs 删除安装路径下的node_modules, 重新安装 按照下面的选择

指数函数exp

目录 指数函数及e 指数增长 复数指数 练习 1. expgui 2. 计算e 3 五角星绘制 指数函数及e &#xff08;1&#xff09;的比值总是常数 &#xff08;2&#xff09;的导数为其自身。&#xff08;根据比值1推导出e的值&#xff09; %% Plot a^t and its approximate derivat…

vue预览和下载txt、PDF、execl等在线文件

因为浏览器默认能直接打开TXT、PDF等文件索引默认就是点击链接打开文件。但是浏览器却又不能在线打开execl、world等文件。 现在我们可以统一的实现文件的预览以及下载。 下载文件 downloadfile方法 downloadfile(url,fileName){const newUrl url;const x new XMLHttpRequ…

Rust vs Go:常用语法对比(七)

题图来自 Go vs Rust: Which will be the top pick in programming?[1] 121. UDP listen and read Listen UDP traffic on port p and read 1024 bytes into buffer b. 听端口p上的UDP流量&#xff0c;并将1024字节读入缓冲区b。 import ( "fmt" "net&qu…

C数据结构与算法——队列 应用(C语言纯享版 迷宫)

实验任务 (1) 掌握顺序循环队列及其C语言的表示&#xff1b; (2) 掌握入队、出队等基本算法的实现&#xff1b; (3) 掌握顺序循环队列的基本应用&#xff08;求解迷宫通路&#xff09;。 实验内容 使用C语言实现顺序循环队列的类型定义与算法函数&#xff1b;编写main()函数…

架构设计-高性能(一、存储高性能)

1.简介 数据存储的性能是系统高性能的两大组成部分之一。目前市场的数据存储技术是五花八门&#xff0c;并且目前针对在大数据环境下针对不同的需求和场景提出了更多不同类型的数据库。本文主要讲解分类中的关系型数据库和NoSql数据库的高性能。 2.关系型数据库 虽然存储技术在…

ClickHouse(二):ClickHouse特性

​目录 1. 完备的DBMS功能 2. 列式存储 3. 数据压缩 4. 向量化执行引擎 5. 关系模型与标准SQL查询 ​​​​​​​6. 多样化的表引擎 ​​​​​​​7. 多线程与分布式 ​​​​​​​8. 多主架构 ​​​​​​​9. 交互式查询 ​​​​​​​10. 数据分片与分布式查询…

03 shell 编程

变量 语言型 编译型语言 解释型语言 shell脚本语言是解释型语言shell脚本的本质&#xff1a;shell命令的有序集合 shell 编程的基本过程 基本过程分为三步&#xff1a; step1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本文件; step2. 赋予shell文件执行…

Flutter 状态组件 InheritedWidget

Flutter 状态组件 InheritedWidget 视频 前言 今天会讲下 inheritedWidget 组件&#xff0c;InheritedWidget 是 Flutter 中非常重要和强大的一种 Widget&#xff0c;它可以使 Widget 树中的祖先 Widget 共享数据给它们的后代 Widget&#xff0c;从而简化了状态管理和数据传递…

Spark(36):Structured Streaming 编程模型

目录 0. 相关文章链接 1. 的核心思想 2. 基本概念 2.1. 输入表 2.2. 结果表 2.3. 输出 2.4. 快速入门代码的再次说明 3. 处理事件-时间和延迟数据(Handling Event-time and Late Data) 4. 容错语义 0. 相关文章链接 Spark文章汇总 1. 的核心思想 Structured Streami…

4、非线性数据结构

上一节课我们讲了线性数据结构&#xff0c;这一节我们说下非线性数据结构。 非线性数据结构&#xff0c;从字面意思来看&#xff0c;就是指不是线性的结构。线性结构的特点是只有一个前驱和一个后继。 那么非线性结构的特点就是有多个前驱或后继了。 如果只存在一个没有前驱的…

第一次编程测试(分频器)

一&#xff0c;分频器 定义 分频器&#xff08;Divider&#xff09;是一种电子电路或设备&#xff0c;用于将输入信号的频率降低到较低的频率。它常用于数字系统、通信系统和计时应用中。原理 整数分频器使用计数器来实现频率的降低。计数器根据输入信号的边沿触发进行计数&am…