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(),
    );
    }
  • 相关阅读:
    get和post
    java学习day34-Cookie技术
    java学习day33-Maven-相关
    在Linux设置完共享文件夹后无法显示Windows里的文件
    Tomcat-把tomcat的端口号从8080修改为80
    是否忘记向源中添加“#include“StdAfx.h””
    php-fpm配置文件详解
    Web安全常见漏洞修复建议
    blog个性化设置
    使用 notepad++ 编辑器在行首、行尾添加字符
  • 原文地址:https://www.cnblogs.com/zhaofeis/p/12332928.html
Copyright © 2011-2022 走看看