import 'package:flutter/material.dart';
class DidiSample extends StatelessWidget{
Choice _selectedChoice = choices[0];
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: DefaultTabController(
length: choices.length,
child: new Scaffold(
appBar: new AppBar(
title: Text("滴滴出行"),
bottom: new TabBar(
tabs: choices.map((Choice choice){
return new Tab(
text: choice.title,
icon: new Icon(choice.icon),
);
}).toList(),
),
),
body: TabBarView(children: choices.map((Choice choice){
return Padding(
padding: EdgeInsets.all(10),
child: ChoiceDidi(choice: choice,),
);
}).toList(),
),
),
),
);
}
}
class Choice{
final String title;
final IconData icon;
const Choice({this.title, this.icon});
}
const List<Choice> choices = <Choice>[
Choice(title: '自驾', icon:Icons.directions_car),
Choice(title: '乘般', icon:Icons.directions_boat),
Choice(title: '自行车',icon: Icons.directions_bike),
Choice(title: '飞机', icon:Icons.directions_bus),
Choice(title: '火车', icon:Icons.directions_railway)
];
class ChoiceDidi extends StatelessWidget{
const ChoiceDidi({Key key, this.choice}):super(key:key);
final Choice choice;
@override
Widget build(BuildContext context) {
// TODO: implement build
final TextStyle textStyle = Theme.of(context).textTheme.display1;
return Card(
color: Colors.white,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Icon(choice.icon, size: 128.0, color: textStyle.color,),
Text(choice.title, style: textStyle,)
],
),
),
);
}
}
void main(){
runApp(DidiSample());
}
----------------------------------------------------------
//调整高度
Scaffold(
appBar: PreferredSize(
child: AppBar(
),
preferredSize: Size.fromHeight(screenSize.height * 0.07))
);
效果如下: