Flutter 是通过Tabbar + TabbarView 来实现 类似Android Viewpager 页面切换的效果的。我个人觉得Flutter 的tab 切换实现过程要比Android的实现过程要简单容易不是一星半点,哈哈哈哈 ,因为她所用到的widget 都是google 官方封装好的,用起来代码量简洁了超级多!!
(一)Flutter 实现 Android CollapsingToolbarLayout折叠布局效果
只实现这个功能,比之前的那个折叠悬浮的功能简单多啦,我这里写个简单的:
我们直接在State 类的build函数添加一下代码:
@override Widget 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
tabs = [ Tab( text: '板块', ), Tab( text: '帖子', ), Tab( text: '用户', ), ]; List tabViews = [HomePage(), ProfilePage(), HomePage()]; @override void initState() { super.initState(); tabController = TabController(length: tabs.length, vsync: this); }