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

效果如下

相关推荐
程序员老刘·2 天前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·跨平台开发·客户端开发
用户86284129549442 天前
Flutter rxflare 计算属性 computed:自动依赖追踪 + 缓存(超实用)
flutter
用户86284129549442 天前
Flutter rxflare 性能测试(最终推荐版):1000 列表极致优化・官方最佳写法
flutter
用户86284129549442 天前
Flutter rxflare 响应式编程:.obs + Rx 组件极简实战
flutter
用户86284129549442 天前
Flutter rxflare 响应式进阶:Map/List 精准字段更新(高性能实战)
前端·flutter
King老师2 天前
Flutter 视频代理完全教程
flutter·音视频
恋猫de小郭2 天前
AI 时代,谷歌都在 Android 官方做了哪些支持?
android·前端·flutter
愚者Pro2 天前
Flutter Widget组件学习(专为 Uniapp 转 Flutter 定制)
vue.js·学习·flutter·uni-app
Flynt2 天前
升级Flutter 3.44,我踩了HCPP和AGP 9的坑
android·flutter·dart
程序员老刘2 天前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·客户端