Flutter 是通过Tabbar + TabbarView 来实现 类似Android Viewpager 页面切换的效果的。我个人觉得Flutter 的tab 切换实现过程要比Android的实现过程要简单容易不是一星半点,哈哈哈哈 ,因为她所用到的widget 都是google 官方封装好的,用起来代码量简洁了超级多!!
(一)Flutter 实现 Android CollapsingToolbarLayout折叠布局效果
只实现这个功能,比之前的那个折叠悬浮的功能简单多啦,我这里写个简单的:
我们直接在State 类的build函数添加一下代码:
@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(centerTitle: true,title: TabBar(controller: tabController,tabs: tabs,isScrollable: true,indicatorColor: Colors.red,labelColor: Colors.white),),body: TabBarView(controller: tabController,children: tabViews,),);}
tabs, tabViews 是我定义的两个成员集合变量,tabController 也是个成员变量,tabController 在initstate()初始化状态的函数中赋值。
List<Tab> tabs = [Tab(text: '板块',),Tab(text: '帖子',),Tab(text: '用户',),];List<Widget> tabViews = [HomePage(), ProfilePage(), HomePage()];@overridevoid initState() {super.initState();tabController = TabController(length: tabs.length, vsync: this);}