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效果来变化公告内容

效果如下

相关推荐
恋猫de小郭1 小时前
Jetpack Compose 1.11 正式版发布,下一代的全新控件和样式 API,你必须知道
android·前端·flutter
IntMainJhy1 小时前
Flutter 三方库 ImagePicker 的鸿蒙化适配与实战指南(相机/相册/多图选择全实现)
数码相机·flutter·harmonyos
IntMainJhy2 小时前
Flutter 三方库 SecureStorage 加密存储鸿蒙化适配与实战指南(加密读写+批量操作全覆盖)
flutter·华为·harmonyos
2301_814809862 小时前
实战分享Flutter Web 开发:解决跨域(CORS)问题的终极指南
前端·flutter
程序员老刘17 小时前
为什么满帧运行的游戏,玩起来反而觉得卡顿?
flutter·客户端
猫山月17 小时前
Flutter路由演进路线(2026)
前端·flutter
悟空瞎说20 小时前
Flutter热更新 Shorebird CodePush 原理、实现细节及费用说明
前端·flutter
Lanren的编程日记1 天前
Flutter 鸿蒙应用AR功能集成实战:多平台AR框架+模拟模式,打造增强现实体验
flutter·ar·harmonyos
zhangjikuan891 天前
Flutter备忘
flutter
Lanren的编程日记1 天前
Flutter 鸿蒙应用启动速度优化实战:优先级并行初始化+懒加载,全方位提升启动体验
flutter·华为·harmonyos