防采集标记:亢少军老师的课程和资料
import 'package:flutter/material.dart';
class TabBarSample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
//添加DefaultTabController关联TabBar及TabBarView
home: new DefaultTabController(
length: items.length,//传入选项卡数量
child: new Scaffold(
appBar: new AppBar(
title: const Text('TabBar选项卡示例'),
bottom: new TabBar(
isScrollable: true,//设置为可以滚动
tabs: items.map((ItemView item) {//迭代添加选项卡子项
return new Tab(
text: item.title,
icon: new Icon(item.icon),
);
}).toList(),
),
),
//添加选项卡视图
body: new TabBarView(
children: items.map((ItemView item) {//迭代显示选项卡视图
return new Padding(
padding: const EdgeInsets.all(16.0),
child: new SelectedView(item: item),
);
}).toList(),
),
),
),
);
}
}
//视图项数据
class ItemView {
const ItemView({ this.title, this.icon });//构造方法
final String title;//标题
final IconData icon;//图标
}
//选项卡的类目
const List items = const [
const ItemView(title: '自驾', icon: Icons.directions_car),
const ItemView(title: '自行车', icon: Icons.directions_bike),
const ItemView(title: '轮船', icon: Icons.directions_boat),
const ItemView(title: '公交车', icon: Icons.directions_bus),
const ItemView(title: '火车', icon: Icons.directions_railway),
const ItemView(title: '步行', icon: Icons.directions_walk),
];
//被选中的视图
class SelectedView extends StatelessWidget {
const SelectedView({ Key key, this.item }) : super(key: key);
//视图数据
final ItemView item;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.display1;
return new Card(
color: Colors.white,
child: new Center(
child: new Column(
mainAxisSize: MainAxisSize.min,//垂直方向最小化处理
crossAxisAlignment: CrossAxisAlignment.center,//水平方向居中对齐
children: [
new Icon(item.icon, size: 128.0, color: textStyle.color),
new Text(item.title, style: textStyle),
],
),
),
);
}
}
void main() {
runApp(new TabBarSample());
}
- Flutter技术入门与实战: http://product.dangdang.com/26485813.html
- Flutter交流学习群:894109159
- Flutter开源项目请关注: https://github.com/kangshaojun
- Flutter视频教程:https://edu.csdn.net/lecturer/2436
@作者: 亢少军