13-3使用TabBar+TabBarView 实现旅拍可滑动切换多Tab

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13-3使用TabBar+TabBarView 实现旅拍可滑动切换多Tab相关的知识,希望对你有一定的参考价值。

实现tab,可以点击切换
技术图片
首先来实现一个tab框架。首先创建travel_page
技术图片
定义成员变量,用到TabView,所以需要先定义TabController。然后定义本页的数据TravelModel
技术图片
默认为空数组
技术图片
还有TravelTabModel
技术图片
在initState内请求接口数据
技术图片
这个this我们需要一个TickerProvider
技术图片

这里我们让他实现SingleTickerProviderStateMinxin就可以了。
技术图片
名称修改下,修改为TravelDao
技术图片
这里返回类型修改为TravelTabModel。并导入这个包
技术图片

技术图片

获取到接口的数据,并赋值给变量,实现内容的渲染

技术图片
报错的处理。
技术图片

build内实现tab功能

首先页面是上下结构的,自外层放一个column
实现Tabbar的组件之类用tabbar
技术图片
tabBar接收一个Controller。可以把我们当前的_controller传递过去。
技术图片
使tabBar可以左右滑动
技术图片
设置指示器
技术图片
技术图片
设置浅入量
技术图片
设置tabs
技术图片
tabs属性接收的是一个数组
技术图片
这里直接调用toList就可以了
技术图片

运行测试
技术图片

彩蛋

如果TabBar是静态的。在tabs这个属性里面写死的数据就没事,
技术图片
如果tabs是根据网路请求之后, 动态的渲染的就是出现这种空白的bug
技术图片
节后获取到数据之后需要重新初始化controller
技术图片
技术图片
技术图片

这样我们的tab数据就加载完成了。
技术图片
底部的内容
技术图片
加完这一块,整个页面又是空白
技术图片
这是一个渲染的异常。
技术图片
没有指定高度,所以发生渲染的异常。
技术图片

技术图片
帮我们适配撑开内容。适配水平方向上的没有撑开的内容。外层我们用它包裹一下。
技术图片
这样就解决了渲染过程中,丢失宽度和高度的问题。
技术图片

禁止PageView的滑动

首页左右滑动效果禁用,和旅拍的tab通过手指左右滑动的问题。
技术图片

技术图片

结束

 

以上是关于13-3使用TabBar+TabBarView 实现旅拍可滑动切换多Tab的主要内容,如果未能解决你的问题,请参考以下文章

关于swift 自定义TabBarView使用系统tabar遇到的问题

如何在具有颤动的可滚动视图中使用具有可变高度内容的TabView?

使 TabBarView 占用所有剩余空间

颤动的 TabBarView 不会被 TabController 改变

加载某些视图时如何隐藏 TabBarView?

带有嵌套 TabBarView 的 Flutter ListView