Created
December 7, 2021 13:27
-
-
Save enriquesaid/e6f7a1d9b966026cecdc8674c62c7dee to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp(new MaterialApp(home: new MyApp(), debugShowCheckedModeBanner: false,),); | |
class MyApp extends StatefulWidget { | |
@override | |
_MyAppState createState() => new _MyAppState(); | |
} | |
class _MyAppState extends State<MyApp> { | |
@override | |
Widget build(BuildContext context) { | |
return new Scaffold( | |
body: new ListView.builder( | |
itemCount: vehicles.length, | |
itemBuilder: (context, i) { | |
return new ExpansionTile( | |
title: new Text(vehicles[i].title, style: new TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic),), | |
children: <Widget>[ | |
new Column( | |
children: _buildExpandableContent(vehicles[i]), | |
), | |
], | |
); | |
}, | |
), | |
); | |
} | |
_buildExpandableContent(Vehicle vehicle) { | |
List<Widget> columnContent = []; | |
for (String content in vehicle.contents) | |
columnContent.add( | |
new ListTile( | |
title: new Text(content, style: new TextStyle(fontSize: 18.0),), | |
leading: new Icon(vehicle.icon), | |
), | |
); | |
return columnContent; | |
} | |
} | |
class Vehicle { | |
final String title; | |
List<String> contents = []; | |
final IconData icon; | |
Vehicle(this.title, this.contents, this.icon); | |
} | |
List<Vehicle> vehicles = [ | |
new Vehicle( | |
'Bike', | |
['Vehicle no. 1', 'Vehicle no. 2', 'Vehicle no. 7', 'Vehicle no. 10'], | |
Icons.motorcycle, | |
), | |
new Vehicle( | |
'Cars', | |
['Vehicle no. 3', 'Vehicle no. 4', 'Vehicle no. 6'], | |
Icons.directions_car, | |
), | |
]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment