Flutter Sliver大家族之SliverList(),SliverFixedExtentList(),SliverGrid()组件②

Flutter Sliver大家族之SliverList,SliverFixedExtentList,SliverGrid组件②

人之所以悲哀,是因为我们留不住岁月,更无法不承认,青春,有一日是要这么自然的消失过去。而人之可贵,也在于我们因着时光环境的改变,在生活上得到长进。岁月的流失固然是无可奈何,而人的逐渐蜕变,却又脱不出时光的力量。

上一章Flutter 小知识:CustomScrollView和SliverAppBar 组件介绍了CustomScrollView和SliverAppBar本章介SliverList(),SliverFixedExtentList(),SliverGrid组件

今日完成效果:

效果图(1.1):

SliverFixedExtentList()

加粗是必传参数

SliverFixedExtentList参数类型说明
itemExtentdouble设置子Widget之间的高度
delegateSliverChildBuilderDelegate设置子Widget的布局内容

代码:

 ///SliverFixedExtentList
  Widget initSliverFixedExtentList() {
    return SliverFixedExtentList(
      //设置子条目高度
      itemExtent: 70.0,
      delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
        return Text('SliverFixedExtentList $index ');
      }, childCount: 10),
    );
  }

加粗是必传参数

SliverChildBuilderDelegate参数类型说明
builderFunction(context,index)用于显示当前Widget布局,index当前布局下标
childCountint子Widget个数

效果图(1,2):

SliverList()

加粗是必传参数

SliverList参数类型说明
delegateSliverChildBuilderDelegate设置子Widget的布局内容

代码:

///SliverList
  Widget initSliverList() {
    return SliverList(
      delegate: SliverChildBuilderDelegate((context, index) {
        return Text(
          "SliverList:$index",
          textAlign: TextAlign.center,
        );
      }, childCount: 10),
    );
  }

效果图(1.3):

SliverList()和SliverFixedExtentList()的区别:

  • SliverList()高度根据子Widget来设置
  • SliverFixedExtentList()高度根据itemExtent参数来设置

SliverGrid()

加粗是必传参数

SliverGrid参数类型说明
delegateSliverChildBuilderDelegate设置子Widget的布局内容
gridDelegateSliverGridDelegateWithFixedCrossAxisCount用来控制Grid子条目行列高度等
SliverGridDelegateWithFixedCrossAxisCount参数类型说明
crossAxisCountint几列
mainAxisSpacingdouble上下间隔
crossAxisSpacingdouble左右间隔

SliverGrid代码:

 Widget initSliverGrid() {
    return SliverGrid(
      //子Widget布局
      delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
        return Text("SliverGrid:$index");
      }, childCount: 20),
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 4, //四列
        mainAxisSpacing: 8, //item上下间隔
        crossAxisSpacing: 8, //item左右间隔
      ),
    );
  }

效果图(1.4):



完整项目

完整代码

猜你喜欢:

Flutter Slider,CupertinoSlider滑动条

Flutter Sliver大家族之CustomScrollView和SliverAppBar 组件①

Flutter Sliver大家族之SliverPersistentHeader()和SliverToBoxAdapter()组件③

Flutter Sliver大家庭之Sliver实战④


原创不易,您的点赞就是对我最大的支持,点个赞支持一下吧~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

s10g

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

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

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

打赏作者

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

抵扣说明:

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

余额充值