flutter 实现定时滚动的公告栏的两种不错方式

相同的部分

自定义一个类继承StatefulWidget

所有公告信息存放在list里

第一种 scrollController+AnimatedContainer

逻辑如下

  1. 我们可以发现启动了一个timer计时器计时5秒,hasClients检查其目标对象(我们用的是listview)是否被渲染,没有被渲染会出大乱子
  2. 另外,currentPostion根据当前偏移量得出,下一个position根据当前偏移量加上一个view的高度
  3. 同时进行检查是否滚动超过了最大可以滚动的量,没有超过久继续滚动,有动画效果,超过了证明该回到一切的开始了

效果如下

接下来会滚动到下一个公告

第二种 直接变化widget+AnimatedSwitcher

很多时候我们不方便或者不想为这个公告添加scrollController,就需要采用如下方式

这里我们直接变化了messages的index

然后在widget控件内,

  1. container包裹animatedSwitcher,
  2. animatedSwitcher的child为row,
  3. row的key为ValueKey<int>(_currentIndex)

这样就可以实现key变换,采用定义的transitionBuilder效果来变化公告内容

效果如下

相关推荐
cn_mengbei2 小时前
Flutter for OpenHarmony 实战:TextFormField 表单输入框详解
flutter
奋斗的小青年!!2 小时前
Flutter跨平台开发适配OpenHarmony:手势识别实战应用
flutter·harmonyos·鸿蒙
cn_mengbei2 小时前
Flutter for OpenHarmony 实战:TextField 文本输入框详解
flutter
西西学代码3 小时前
Flutter---常见的ICON图标
flutter
LawrenceLan4 小时前
Flutter 零基础入门(十):final、const 与不可变数据
开发语言·flutter·dart
行者964 小时前
Flutter跨平台开发:安全检测组件适配OpenHarmony
flutter·harmonyos·鸿蒙
小雨下雨的雨5 小时前
Flutter 框架跨平台鸿蒙开发 —— GridView 控件之多维网格美学
flutter·华为·交互·harmonyos·鸿蒙系统
cn_mengbei5 小时前
Flutter for OpenHarmony 实战:ElevatedButton 悬浮按钮详解
flutter
不爱吃糖的程序媛5 小时前
OpenHarmony跨端生态适配全指南|Flutter/RN/三方库/C/C++/仓颉 鸿蒙化最佳实践
c语言·c++·flutter
小雨下雨的雨6 小时前
Flutter跨平台开发实战: 鸿蒙与循环交互艺术:无限循环的 Banner 引擎
flutter·ui·华为·交互·harmonyos·鸿蒙系统