news 2026/4/18 5:25:21

Flutter 轮播图封装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flutter 轮播图封装

Flutter 轮播图封装

PageView组件

支持滚动、懒加载、按需渲染,可以用来实现分页加载、轮播图,可以通过scrollDirection 设置滚动的方向。

效果图

flutter PageView 实现轮播图

实现

@overridevoidinitState(){super.initState();// 组件初始化时启动定时器(可选)_setTimer();}@overridevoiddispose(){_pageController.dispose();super.dispose();}List<int>_list=List.generate(10,(index)=>index+1);int _currentIndex=0;PageController _pageController=PageController();Timer?_timer;/// 设置定时器void_setTimer(){_timer?.cancel();_timer=Timer.periodic(Duration(seconds:3),(timer){// 3s 自动轮播_currentIndex+=1;if(_currentIndex==_list.length){_currentIndex=0;}_jumpPage(_currentIndex);setState((){});});}void_cancelTimer(){_timer?.cancel();}void_jumpPage(int index){// 跳转到指定页面,动画平滑过渡_pageController.animateToPage(index,duration:constDuration(milliseconds:300),curve:Curves.linear).then((value){// 重启定时器_setTimer();},);}@overrideWidgetbuild(BuildContext context){returnContainer(color:Colors.blue,child:Stack(children:[PageView(onPageChanged:(index){},// 也可以在此处设置_curIndex = index, 这样左右滑动也可以跳转,但是指示器动画不好看controller:_pageController,// 控制器children:List.generate(_list.length,(index){// 轮播returnContainer(alignment:Alignment.center,child:Text("第${index + 1}轮播图",style:constTextStyle(color:Colors.white),),);}),),Positioned(bottom:10,left:0,right:0,child:Row(mainAxisAlignment:MainAxisAlignment.center,children:List.generate(_list.length,(index){returnGestureDetector(onTap:(){// 点击指示器,跳转到对应的页面_cancelTimer();// 取消定时器, 重置计时时间_jumpPage(index);setState((){_currentIndex=index;});},child:Container(margin:constEdgeInsets.only(left:10),height:20,width:20,decoration:BoxDecoration(borderRadius:constBorderRadius.all(Radius.circular(20)),color:_currentIndex==index?Colors.red:Colors.white),// 指示器颜色判读),);}),))],),);};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 12:32:18

【下载链接】Bili23 Downloader-B站视频下载工具!嘎嘎好用的工具

软件获取地址 下载地址点击这里 BiliDownloader「电脑」 B站大咖工具BliliDownloader&#xff0c;码云开源&#xff0c;支持BV号、AV号、链接、EP号等形式下载B站各类视频&#xff0c;太方便了&#xff01; 界面UI极其简洁&#xff0c;没有任何花里胡哨的东西 看着简洁&…

作者头像 李华
网站建设 2026/4/17 10:49:37

AutoGPT项目蓝绿部署实践:零停机切换保障

AutoGPT项目蓝绿部署实践&#xff1a;零停机切换保障 在AI智能体逐渐从实验原型走向生产落地的今天&#xff0c;一个核心问题浮出水面&#xff1a;当AutoGPT正在为用户撰写一份长达数小时的研究报告时&#xff0c;我们能否安全地升级系统而不中断任务&#xff1f; 这不仅是技术…

作者头像 李华
网站建设 2026/4/17 12:51:32

Analog Devices

Microcontroller no-OS Drivers [Analog Devices Wiki]

作者头像 李华
网站建设 2026/4/16 15:58:10

数据挖掘05

数据挖掘05 书接上回 1.包含动量的随机梯度下降算法 &#xff08;1&#xff09;定义 包含动量的随机梯度下降&#xff08;Momentum Stochastic Gradient Descent, 简称 SGD with Momentum&#xff09;是一种在标准随机梯度下降&#xff08;SGD&#xff09;基础上引入“动量”项…

作者头像 李华
网站建设 2026/4/10 22:36:47

Qwen3-14B对多种语言的支持程度测试结果公布

Qwen3-14B 多语言能力与企业级应用深度解析 在当前AI模型“军备竞赛”愈演愈烈的背景下&#xff0c;千亿参数大模型固然引人注目&#xff0c;但真正决定技术能否落地的&#xff0c;往往是那些在性能、成本与可控性之间找到平衡点的中型主力选手。通义千问系列中的 Qwen3-14B 正…

作者头像 李华
网站建设 2026/4/18 1:22:52

20、Java交互与图形编程及DOS系统发展全解析

Java交互与图形编程及DOS系统发展全解析 1. Java交互事件 Java applet通常需要用户进行交互操作,常见的是通过鼠标或键盘。下面详细介绍鼠标和键盘的交互事件。 1.1 鼠标事件 Java支持三种基本的鼠标事件: - mouseUp() :鼠标按键释放时触发。 - mouseDown() :鼠标…

作者头像 李华