flutter控件之---------listView

可滚动的列表控件。ListView是最常用的滚动widget,它在滚动方向上一个接一个地显示它的孩子。在纵轴上,孩子们被要求填充ListView

构造方法有四种
new ListView
new ListView.builder
new ListView.separated
new ListView.custom

1.new ListView

这是默认的listView构造

 List<Widget> mItem = new List();
    for (int i = 0; i < 20; i++) {
      mItem.add(new ListTile(title: new Text('聆听璇律${i}')));
    }
    //添加分割线
    var divideListItem = ListTile.divideTiles(
        tiles: mItem, context: context, color: Colors.pink).toList();
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('第五个页面'),
      ),
      body: new ListView(
        //无分割线
        children: mItem,
        //有分割线
//        children: divideListItem,
      ),
    );

无分割线图


no_divider.png

有分割线图


divider.png

2.new ListView.Builder
我们可以自定义item的样式itemBuilder

body: new ListView.builder(
        itemCount: 20,
        itemBuilder: (BuildContext context, int index) {
          return new Container(
              padding: new EdgeInsets.all(10.0),
              child: new Row(
                children: <Widget>[
                  new Image.asset(
                    'images/goods_image.png', width: 100.0, height: 100.0,),
                  new Padding(padding: new EdgeInsets.all(10.0)),
                  new Text('第${index}个图',)
                ],
              )
          );
        },
      ),
listView_builder.png

3.new ListView.separated
他的特殊地方在于多了一个separatorBuilder参数,这个参数可以用来添加分割线。

body: new ListView.separated(
        itemCount: 20,
        itemBuilder: (BuildContext context, int index) {
          return new Container(
            padding: new EdgeInsets.all(10.0),
            child: new Row(
              children: <Widget>[
                new Image.asset(
                  'images/goods_image.png', width: 100.0, height: 100.0,),
                new Padding(padding: new EdgeInsets.all(10.0)),
                new Text('第${index}个图',)
              ],
            ),
          );
        },
        separatorBuilder: (BuildContext context, int index) {
          return new Divider(height: 1.0, color: Colors.blue,);
        },
      ),
separator.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Leo66阅读 7,471评论 0 1
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,480评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,632评论 25 709
  • 2011年9月,作为大一懵懂的小学妹,由着自己想作为志愿者的情愫,过关斩将成为红十字协会的一员,便遇上了此生...
    傻子薛阅读 1,378评论 0 1
  • 六月的雨,不停歇 站在阳台玻璃窗前,看你,听你! 思绪变得越来越飘渺,空空也! 爱在心中,流淌在指尖, 温柔得抚摸...
    芮菈之城阅读 832评论 0 0