zoukankan      html  css  js  c++  java
  • GridView 列表组件 以及动态 GridView

     
     

    1、通过 GridView.builder 实现网格布局

    GridView.builder(
    itemCount: 5,
    shrinkWrap: true,
    physics: new NeverScrollableScrollPhysics(),
    //SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    //横轴元素个数
    crossAxisCount: 3,
    //纵轴间距
    mainAxisSpacing: 20.0,
    //横轴间距
    crossAxisSpacing: 10.0,
    //子组件宽高长度比例
    childAspectRatio: 1.0),
    itemBuilder: (BuildContext context, int index) {
    //Widget Function(BuildContext context, int index)
    return Text('更多游戏', style: TextStyle(fontSize: Screen.width(30)),);
    })


    案例
    Widget getList(context, index) {
    return Container(
    margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
    padding: EdgeInsets.all(10),
    child: Column(
    children: <Widget>[
    Image.network(
    listData[index]['imageUrl'],
    fit: BoxFit.cover,
    ),
    SizedBox(height: 5),
    Text(
    listData[index]['title'],
    style: TextStyle(
    fontSize: 14
    ),
    overflow: TextOverflow.ellipsis,
    )
    ],
    ),
    decoration: BoxDecoration(
    border: Border.all(
    1,
    color: Colors.black12
    )
    ),
    );
    }
    Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
    padding: EdgeInsets.all(10),
    child: GridView.builder(
    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2,
    crossAxisSpacing: 10,
    ),
    itemCount: listData.length,
    itemBuilder: getList,
    )
    );
    }

    2、可以通过 GridView.count 实现网格布局

    getList() {
    var tempList = listData.map((val) {
    return Container(
    margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
    padding: EdgeInsets.all(10),
    child: Column(
    children: <Widget>[
    Image.network(
    val['imageUrl'],
    fit: BoxFit.cover,
    ),
    SizedBox(height: 5),
    Text(
    val['title'],
    style: TextStyle(
    fontSize: 14,
    color: Colors.red
    ),
    overflow: TextOverflow.ellipsis,
    )
    ],
    ),
    decoration: BoxDecoration(
    border: Border.all(
    1,
    color: Colors.black12
    )
    ),
    );
    });
    return tempList.toList();
    }
    Widget build(BuildContext context) {
    // TODO: implement build
    return GridView.count(
    padding: EdgeInsets.all(10),
    crossAxisCount: 2,
    crossAxisSpacing: 10,
    children: getList(),
    );
    }
  • 相关阅读:
    C系统,操作符和词法元素
    值类型和引用类型
    WPF
    C#版本进化
    快速排序
    C语言字符串
    查找
    简单快速排序
    PHP运行出现Notice : Use of undefined constant 的解决办法
    vs2010 修改注释模板
  • 原文地址:https://www.cnblogs.com/zhaofeis/p/12332928.html
Copyright © 2011-2022 走看看