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

效果如下

相关推荐
天天开发1 小时前
Flutter每日库: image_picker选取相册图片视频
flutter
消失的旧时光-19433 小时前
Flutter 组件:StatelessWidget vs StatefulWidget
flutter
天意__3 小时前
Flutter 聊天界面使用ListView的reverse:true,导致条目太少的时候会从下往上显示,导致顶部大片空白
flutter
汤面不加鱼丸3 小时前
flutter实践:混合app在部分android旧机型上显示异常
android·flutter
火柴就是我3 小时前
flutter 为什么大家说不能在initState 方法中调用dependOnInheritedWidgetOfExactType
flutter
程序员老刘1 天前
4:2:1!老刘的三季度项目报告
flutter·harmonyos·客户端
达达尼昂1 天前
🎯 Flutter 拖拽选择组件:flutter_drag_selector —— 像选文件一样选择列表项
前端·flutter
QuantumLeap丶1 天前
《Flutter全栈开发实战指南:从零到高级》- 15 -本地数据存储
flutter·ios·dart
法的空间1 天前
让 Flutter 资源管理更智能
android·flutter·ios
江上清风山间明月1 天前
Flutter中Column中使用ListView时溢出问题的解决方法
android·flutter·column·listview