如何在Flutter中创建Expandable ListView

如何在Flutter中创建Expandable ListView,第1张

如何在Flutter中创建Expandable ListView

Try this:

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,  ),];


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4890473.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存