Flutter | 给 ListView 添加表头表尾最简单的方式

看到有不少人在用 CustomScrollView,我实在心痛,杀鸡焉用牛刀?

在这里插入图片描述

好好看代码,一个小小的 Column 就能解决问题:

class _AddHeaderFooterListPageState extends State<AddHeaderFooterListPage> {
  final _dataArray = [1, 2, 3];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: BaseAppBar(titleText: '添加表头表尾'),
      body: ListView.builder(
        itemCount: _dataArray.length,
        itemBuilder: (context, index) {
          if (index == 0) {
            // 开头
            return Column(
              children: [
                _buildHeader(),
                _buildCell(index),
              ],
            );
          } else if (index == _dataArray.length - 1) {
            // 结尾
            return Column(
              children: [
                _buildCell(index),
                _buildFooter(),
              ],
            );
          } else {
            return _buildCell(index);
          }
        },
      ),
    );
  }

  Widget _buildCell(int index) {
    return Container(
      alignment: Alignment.centerLeft,
      height: 30,
      color: Colors.orange,
      child: Text('这是cell-$index'),
    );
  }

  Widget _buildHeader() {
    return Container(
      alignment: Alignment.center,
      height: 100,
      color: Colors.red,
      child: const Text('这是表头'),
    );
  }

  Widget _buildFooter() {
    return Container(
      alignment: Alignment.center,
      height: 100,
      color: Colors.green,
      child: const Text('这是表尾'),
    );
  }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无夜之星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值