flutter之列表——ListView

本文探讨了在Flutter中如何使用ListView组件创建列表,对比了Android中的ListView、RecyclerView等,详细解析了Flutter列表显示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android中实现列表的方式有ListView、GrildView、ExpandableListView,后边出来另一个非常好用的RecyclerView,那么今天我们就看看flutter如何实现列表显示的。

import 'package:flutter/material.dart';
//数据源
final Set<Person> sets = new Set<Person>();

void main() {
  runApp(new MaterialApp(
    title: 'flutter 示例',
    home: new ListViewWidget()
  ));
}

class ListViewWidget extends StatefulWidget {

  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new ListViewState();
  }
}

class ListViewState extends State<ListViewWidget> {

  List<ItemWidget> list = new List<ItemWidget>();

  add() {
    print('回调了add()');
    setState(() {
      sets.add(new Person('战士 ${sets.length + 1}', '我是第${sets.length + 1}个兵'));
    });
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('列表示例'),
        centerTitle: true,
      ),
      body: new ListView(
        children: sets.map((p) {
          return new ItemWidget(p);
        }).toList(),
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: add,
//        onPressed: null,
        tooltip: 'add',
        child: new Icon(Icons.add),
        backgroundColor: Colors.blue[400],
      ),
    );
  }
}
//数据实体
class Person {
  String name;
  String info;

  Person(this.name, this.info);
}
//liveview子项
class ItemWidget extends StatelessWidget {
  final Person _person;

  ItemWidget(this._person);

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new ListTile(
      leading: new CircleAvatar(
        child: new Text(_person.name[0]),
        backgroundColor: Colors.blue[400],
      ),
      title: new Text(_person.name),
      subtitle: new Text(_person.info),
    );
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值