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

效果如下

相关推荐
2501_9206276118 小时前
Flutter 框架跨平台鸿蒙开发 - 附近停车场查询
flutter·华为·harmonyos
芙莉莲教你写代码18 小时前
Flutter 框架跨平台鸿蒙开发 - 水果消消乐游戏
flutter·游戏·华为·harmonyos
芙莉莲教你写代码19 小时前
Flutter 框架跨平台鸿蒙开发 - 坦克大战游戏
flutter·游戏·华为·harmonyos
2501_9206276119 小时前
Flutter 框架跨平台鸿蒙开发 - 数学学习助手
学习·flutter·华为·harmonyos
2501_9206276120 小时前
Flutter 框架跨平台鸿蒙开发 - 计算器增强版
flutter·华为·harmonyos
2501_9206276120 小时前
Flutter 框架跨平台鸿蒙开发 - 单词卡记忆
flutter·华为·harmonyos
芙莉莲教你写代码20 小时前
Flutter 框架跨平台鸿蒙开发 - 宝石消除游戏
flutter·游戏·华为·harmonyos
louisgeek1 天前
Flutter autoDispose、keepAlive 和 ref.keepAlive 的区别
flutter
左手厨刀右手茼蒿1 天前
Flutter 三方库 firebase_admin 跨云边管线企业级鸿蒙管控底座适配风云:无障碍贯穿服务器授权防火墙打通底层生态授权域并构建海量设备推送集结-适配鸿蒙 HarmonyOS ohos
服务器·flutter·harmonyos
钛态1 天前
Flutter for OpenHarmony:shelf_web_socket 快速构建 WebSocket 服务端,实现端到端实时通信(WebSocket 服务器) 深度解析与鸿蒙适配指南
服务器·前端·websocket·flutter·华为·性能优化·harmonyos