flutter - 滚动组件 ListView 和 GridView 一块使用

在这里插入图片描述

1. ListView 和 GridView 组合一块滚动

问题: GridView 里的 元素 不能设置 大小, 只能通过修改 childAspectRatio 来控制宽高比

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("首页"),
      ),
      backgroundColor: Color(0xfff1f1f1),
      body: ListView(
        children: [
          Container(
            height: 200,
            color: Colors.black12,
            child: Center(child: Text("顶部")),
          ),
          Container(
            height: 300,
            margin: EdgeInsets.only(top: 20),
            child: GridView(
              // 设置滚动的方式
              physics: NeverScrollableScrollPhysics(), // 禁止滚动
              padding: EdgeInsets.all(0),
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 4,
              ),
              children: [
                _createGridViewItem(Colors.primaries[0]),
                _createGridViewItem(Colors.primaries[1]),
                _createGridViewItem(Colors.primaries[2]),
                _createGridViewItem(Colors.primaries[3]),
                _createGridViewItem(Colors.primaries[4]),
                _createGridViewItem(Colors.primaries[5]),
                _createGridViewItem(Colors.primaries[6]),
                _createGridViewItem(Colors.primaries[7]),
                _createGridViewItem(Colors.primaries[8]),
              ],
            ),
          )
        ],
      ),
    );
  }

  _createGridViewItem(Color color) {
    return Container(
      color: color,
    );
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值