十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先制作一个纵轴滚动的pageview
成都创新互联是一家集网站建设,梅州企业网站建设,梅州品牌网站建设,网站定制,梅州网站建设报价,网络营销,网络优化,梅州网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
然后我们利用time组件实现自动轮播,这里面有个小技巧,掌握了这个小技巧就可以做无缝的循环播放,比如我有 a b c三项,我们在构造pageview item的时候人为的构造成a b c a,在c的后面加上a,当c滚动到a的时候,比如每次动画变换时间是500毫秒,那么就延迟500好秒快速的跳到第一个a页面,刚好等它滚动完就快速变换
在视觉上完全看不出来,这样就造成了无缝循环滚动的假象,同理如果你想反方向也可以无缝循环滚动,那么你在构造pageview item的时候就可以 这样c a b c a构造,只要控制好逻辑,完全没有任何问题
在本博客中,我们将探讨Flutter中的堆叠式卡轮播。 我们还将实现一个演示程序,并学习在您的flutter应用程序中使用 stacked_card_carousel 包创建一个带有垂直轮播的堆叠卡。
用于创建带有堆叠卡片的垂直轮播的小部件。 下面的演示视频显示了如何在Flutter中创建带有垂直旋转木马的堆叠卡。 它显示了在您的flutter应用程序中如何使用stacked_card_carousel软件包来使用堆叠式卡轮播。 它显示了垂直圆盘传送带滑动卡的列表,所有卡向上滑动并堆叠,称为堆叠式卡传送带。 它会显示在您的设备上。
堆叠式卡轮播的一些属性是:
在lib文件夹中创建一个名为style_card.dart的新dart文件。
首先,我们创建StyleCard类,将在后续的DEMO中调用它
我们将制作一个 card 控件. 在card控件中, 我们加入一个elevation 属性和一个column控件。 在column中, 我们加入一个container用于包含image, title 和 description. 然后在stacked_card_demo页面中使用它。
在lib文件夹中创建一个新的名为stacked_card_demo.dart的dart文件。
现在,我们将创建一个styleCards列表,并在其中添加一个StyleCard类。
我们创建了八个卡片控件,并在其中添加了image,title和description。 程序运行后,我们将看到一个卡片列表, 当用户向上滑动时,所有卡片都将堆叠在一起; 当用户向下滑动时,卡片都将回到原始位置;
效果如下:
Demo地址:
NotificationListener 可以监听 PageView 的改变,比如滑动的距离,页面索引等,目前只使用的了索引。里面的一些方法挺有用的。
使用 AnimatedContainer 组件保证切换以后会有流程的过渡效果,表现的会平滑一些。
首先,返回数据需要包含图片的宽高信息,就像这样:
如果返回的只有图片信息没有宽高数据可以使用以下方法去获得图片的信息,这样也可以得到图片的宽高信息,不太建议,还是直接叫后端给,我们也方便处理,要是后端说他们给不了就拿上砖头去叫他们加,就想偷懒。
自适应轮播图的高度我们需要原始图片的宽高比,或者知道原始图的宽高。显示的时候按照原始的宽高比进行等比例缩放。
_controller.page 获取到的是一个浮点数,类似 1.0325441 ,使用 round 四舍五入出现的效果就是我们拖到一半或以上就可以得到下一个 activeIndex , activeIndex 是一个整数。
我们动态获取了图片的宽度以后放入 AnimatedContainer 就可以有过渡效果,真机和模拟器测试都很流畅,可以已60帧渲染。
使用 flutter_swiper 轮播库。
使用 AspectRatio 结合实现效果,设置对应的比例。