
正文
flutter案例,flutter开发技巧
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Flutter PageView使用案例
现在的小目标是要实现一个 「图片轮播」的效果,我们在 Android 中可以使用 ViewPager 结合 handler 或者 Timer 去实现。
而我们在 Flutter 中,其实也是类似的。
那么,在 Flutter 中,代替 Android 中的 ViewPager 组件是 PageView ,而且,这个 PageView 相比 ViewPager 扩展性更高。
我们来看一下
Flutter PageView 官网
根据官网的介绍, PageView 在需要展示的页面很多时,有「控件复用」功能,而且,我们还可以通过
来设置滚动的方向,也就是说,我们还可以完成「纵向滚动」,真的很棒有么有?
偷的小米官网的轮播图
看一下效果图
GestureDetector ,或者直接返回一个 button 类型的 Widget 即可
ok,了解了这个PageView,接下来,我们想法子搞一个「轮播效果」,请见下一篇文章。
[img]相关问答
Q1: flutter刷新页面的方法
这种方法最常见,但是有些地方引用的话,刷新的成本比较大,刷新的是整个页面,数据太多加载太慢的话,会有闪烁的现象
这种方法类似于iOS中的set方法,通过设置某个属性的时候,去刷新某个控件。在flutter中这种刷新方式,是对上面setState(){}方法的改进,根本的方法还是setState(){},只不过是通过方法去刷新某个控件。如下:
首先在pubspec.yaml中添加provider依赖
下面通过provider来实现一个发送验证码的案例。
创建一个TimerModel文件
页面布局如下:
Q2: 25.Flutter的ListView监听滚动事件之ScrollController
对于滚动的视图,我们经常需要监听它的一些滚动事件,在监听到的时候去做对应的一些事情。
比如视图滚动到底部时,我们可能希望做上拉加载更多;
比如滚动到一定位置时显示一个回到顶部的按钮,点击回到顶部的按钮,回到顶部;
比如监听滚动什么时候开始,什么时候结束;
在Flutter中监听滚动相关的内容由两部分组成:ScrollController和ScrollNotification。
ScrollController
在Flutter中,Widget并不是最终渲染到屏幕上的元素(真正渲染的是RenderObject),因此通常这种监听事件以及相关的信息并不能直接从Widget中获取,而是必须通过对应的Widget的Controller来实现。
ListView、GridView的组件控制器是ScrollController,我们可以通过它来获取视图的滚动信息,并且可以调用里面的方法来更新视图的滚动位置。
另外,通常情况下,我们会根据滚动的位置来改变一些Widget的状态信息,所以ScrollController通常会和StatefulWidget一起来使用,并且会在其中控制它的初始化、监听、销毁等事件。
我们来做一个案例,当滚动到1000位置的时候,显示一个回到顶部的按钮:
jumpTo(double offset)、animateTo(double offset,...):这两个方法用于跳转到指定的位置,它们不同之处在于,后者在跳转时会执行一个动画,而前者不会。
ScrollController间接继承自Listenable,我们可以根据ScrollController来监听滚动事件。








