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

效果如下

相关推荐
空白诗16 分钟前
基础入门 Flutter for OpenHarmony:ClipRRect 圆角裁剪组件详解
flutter
键盘鼓手苏苏20 分钟前
Flutter for OpenHarmony 实战:just_audio 音乐播放器深度适配与进阶
flutter
松叶似针2 小时前
Flutter三方库适配OpenHarmony【secure_application】— FlutterPlugin 接口实现与注册
flutter
空白诗2 小时前
基础入门 Flutter for OpenHarmony:Positioned 定位组件详解
flutter
松叶似针2 小时前
Flutter三方库适配OpenHarmony【secure_application】— iOS 端原生模糊遮罩实现分析
flutter·ios·cocoa
空白诗3 小时前
基础入门 Flutter for OpenHarmony:Icon 图标组件详解
flutter
钛态3 小时前
Flutter for OpenHarmony:mason_cli 拒绝重复劳动,用砖块构建你的代码模板(强大的脚手架生成器) 深度解析与鸿蒙适配指南
flutter·ui·华为·自动化·harmonyos
空白诗5 小时前
基础入门 Flutter for OpenHarmony:Spacer 间距组件详
flutter
松叶似针5 小时前
Flutter三方库适配OpenHarmony【secure_application】— Android 端 FLAG_SECURE 实现分析
android·flutter
阿林来了6 小时前
Flutter三方库适配OpenHarmony【flutter_speech】— AbilityAware 接口与上下文获取
flutter