Flutter Listview, Column, Row学习个人总结2

上一篇博客写到了children,那么,这篇博客将会记录Listview, Column, Row 这些可以使用children进行多组件布局的列表组件和行组件

Listview

Listview是一个列表组件,它可以将children 组件列表中的组件进行垂直布局,如

ListView(    //是一个线性布局的widgets 列表.
      children: <Widget>[  // 代表这是个多种组件列表
        ListTile(
          leading: Image.network("https://api.iehu.cn/Image.php"),
          // leading: Icon(Icons.security,color: Colors.yellow,size: 80,), //icon 图标
          title: Text("这是主标题"), // 当前listtile 标题
          subtitle: Text("这是二级标题"), // 二级标题
        )
        ListTile(
          leading: Image.network("https://api.iehu.cn/Image.php"),
          // leading: Icon(Icons.security,color: Colors.yellow,size: 80,), //icon 图标
          title: Text("这是主标题"), // 当前listtile 标题
          subtitle: Text("这是二级标题"), // 二级标题
        )
      ],
    );
Column

Column 也是一个垂直布局的列表组件, 它和Listview的区别是它 Listview中的子组件是填满父组件的宽度的, 而 Column 是被父组件限制的,
在这里插入图片描述

如图可以看到,在Listview中是不可以设置width的,设置了也没用,

在这里插入图片描述
可以看到, 在Column中是可以设置子组件的大小的, 这就是两个列表组件的差异, 而且,在Column中是可以使用 Spacer() 属性的,Spacer 属性是将它下面的其他组件像弹簧样把下面的子组件给压到下面去, 而在Listview 中是办不到的

在这里插入图片描述

在这里插入图片描述

Row

Row是一个行列表组件, 它会将组件列表中的组件以行的形式进行布局, 如
在这里插入图片描述
基于父组件下将列表组件中的元素已行的方式进行排序布局, 可以配合 Spacer() 进行使用, Spacer 可以实现将子组件从右往左来进行布局,一般在Row还可以使用 Expanded()组件,Expanded()可以实现将子组件自动拉伸平分行级
在这里插入图片描述
如图可以看到,如果使用了 Expanded 的话,那么在child 中设置的width 是没有用的, Expanded 将当前父组件的width平分, 有多少个Expanded就平分成多少份, 也可以使用 flex按比例划分, 如
在这里插入图片描述
可以看到, 原本没有flex 的时候是平分的, 当写上flex后,它会将当前的宽度按比例 1:5 进行划分为两份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值