flutter ListView的使用

在这里插入图片描述

  • 使用ListTile创建ListView
  • 自定义ListTile闯将ListView
  • 使用Builder创建ListView
import 'package:flutter/material.dart';

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

class ListViewState extends State<ListViewDemo> {
  var list = ["a", "b", "c", "d"];

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      //
        body: ListView(
      children: <Widget>[
        ListView(
          // 高度会适配 item填充的内容的高度
          shrinkWrap: true,
          children: getDefaultList(),
        ),
        ListView(
          // 高度会适配 item填充的内容的高度
          shrinkWrap: true,
          children: getMyList(),
        ),
        getBuilderList()
      ],
    ));
  }

  getDefaultList() {
    return list.map((String f) {
      return ListTile(
        //是否默认3行高度,subtitle不为空时才能使用
        isThreeLine: true,
        //设置为true后字体变小
        dense: false,
        //左侧widge
        leading: new CircleAvatar(
          child: Text(f),
        ),
        title: Text('item的标题'),
        subtitle: Text('item的内容'),
        trailing: Icon(
          Icons.add,
          color: Colors.red,
        ),
      );
    }).toList();
  }

  //自定义ListTile
  getMyList() {
    return list.map((String f) {
      return Container(
        padding: EdgeInsets.all(10),
        child: Row(
          children: <Widget>[
            CircleAvatar(
              backgroundImage: AssetImage("assets/images/home"),
            ),
            Expanded(child: Container(padding:EdgeInsets.only(left:40),child: Text(f),)),
          ],
        ),
      );
    }).toList();
  }

  //使用Builder创建列表
  getBuilderList() {
    return ListView.builder(
        shrinkWrap: true,
        itemCount: list.length,
        itemBuilder: (BuildContext context, int index) {
          return Text(list[index],textAlign: TextAlign.center,);
        });
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值