![Flutter实战入门](https://wfqqreader-1252317822.image.myqcloud.com/cover/55/32436055/b_32436055.jpg)
上QQ阅读APP看书,第一时间看更新
3.2.5 TabBar
TabBar是一排水平的标签,可以来回切换。TabBar主要属性参见表3-15。
表3-15 TabBar属性
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/b3-15-i.jpg?sign=1738953565-mZYBl3TItp9NN5PRlv8dDdK9MegnnyEb-0-6e3ec49f8f55a702385d4837e6a778c9)
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/59-i.jpg?sign=1738953565-7GMr6kvtAt5ZiqQpFi1UbwFf0TV36HPL-0-c9ee5828e613bf87e64bd4a6f1e4f986)
各门功课名称导航代码如下:
import 'package:flutter/material.dart'; class TabBarDemo extends StatefulWidget { @override State<StatefulWidget> createState() => _TabBar(); } class _TabBar extends State<TabBarDemo> { final List<String> _tabValues = [ '语文', '英语', '化学', '物理', '数学', '生物', '体育', '经济', ]; TabController _controller; @override void initState() { super.initState(); _controller = TabController( length: _tabValues.length, vsync: ScrollableState(), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('TabBar'), bottom: TabBar( tabs: _tabValues.map((f) { return Text(f); }).toList(), controller: _controller, indicatorColor: Colors.red, indicatorSize: TabBarIndicatorSize.tab, isScrollable: true, labelColor: Colors.red, unselectedLabelColor: Colors.black, indicatorWeight: 5.0, labelStyle: TextStyle(height: 2), ), ), body: TabBarView( controller: _controller, children: _tabValues.map((f) { return Center( child: Text(f), ); }).toList(), ), ); } }
运行效果如图3-19所示。
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/t3-19-i.jpg?sign=1738953565-dl58kW5bmjUBUVPeEXiyUbtkKS6ukzec-0-e4218b8a9b61d11b4538584a37e3acd7)
图3-19 TabBar效果