zoukankan      html  css  js  c++  java
  • Flutter学习之GridView

    方案1

    import 'package:flutter/material.dart';
    
    void main () => runApp(MyApp());
    
    class MyApp extends StatelessWidget{
      @override
      Widget build(BuildContext context ){
          return MaterialApp(
            title:'ListView widget',
            home:Scaffold(
              appBar: new AppBar(
                title: new Text("网格视图"),
              ),
              body:GridView.count(
                padding:const EdgeInsets.all(2.0),
                childAspectRatio: 0.7,		//图片的长宽比
                mainAxisSpacing: 2.0,		//每一行间距
                crossAxisSpacing: 2.0,		//每一列间距
                crossAxisCount: 2,			//每一行的列数
                children: <Widget>[
                  new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                ],
              )
            ),
          );
      }
    }
    

    方案2

    import 'package:flutter/material.dart';
    
    void main(){
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget{
      @override
      Widget build(BuildContext context){
        return MaterialApp(
          title: "grid view",
          home: Scaffold(
            appBar: new AppBar(
              title: new Text("grid view"),
              backgroundColor: Colors.pinkAccent,
            ),
            body: GridView(
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 2,            //每行的列数
                mainAxisSpacing: 2.0,       //纵向间距
                crossAxisSpacing: 2.0,    //横向间距
                childAspectRatio: 0.71,  //缩放比例 ,图片的长宽比
              ),
              children: <Widget>[
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),            
              ]
    
            )
            ),
          );
      }
    }
    

    平时我们看到的手机相册,淘宝商品列表其实就是网格视图的应用
    Flutter里也有网格组件GridView

    GridView.count(
                padding:const EdgeInsets.all(2.0),
                childAspectRatio: 0.7,
                mainAxisSpacing: 2.0,
                crossAxisSpacing: 2.0,
                crossAxisCount: 2,
                children: <Widget>[
                new Image.network("http://img5.mtime.cn/mg/2019/01/25/105551.72978167_126X190X4.jpg",fit: BoxFit.cover),
                 ],
              )
    

    上面的代码是比较常用的方法
    使用GridView.count的接口
    在里面使用

    • padding: const EdgeInsets.all(2.0)(距离边框的距离)
    • childAspectRatio: 0.7 (子组件的长宽比为1:0.7)
    • mainAxisSpacing:2.0 (纵向间距)
    • crossAxisSpacing: 2,0 (横向间距)
    • crossAxisCount: 2 (每行有两个子组件)

    下面是示例图

    在这里插入图片描述

  • 相关阅读:
    数据仓库--事实表
    Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
    在Oracle中使用rank()over()排名的问题
    python 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(用列表推导式)
    pyhton 打印菱形
    三元运算
    Python代码书写规范
    DDT驱动
    使用 JsonPath 完成接口自动化测试中参数关联和数据验证(Python语言)
    数据类型(字典)
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072660.html
Copyright © 2011-2022 走看看