• Flutter——GridView组件(网格列表组件)


    GridView组件的常用参数:

    名称 类型 说明
    scrollDirection
    Axis
    滚动方法
    padding
    EdgeInsetsGeometry
    内边距
    resolve
    bool
    组件反向排序
    crossAxisSpacing
    double
    水平子 Widget 之间间距
    mainAxisSpacing
    double
    垂直子 Widget 之间间距
    crossAxisCount
    int
    一行的 Widget 数量
    childAspectRatio
    double
    子 Widget 宽高比例
    children
     
    <Widget>[]
    gridDelegate
    SliverGridDelegateWithFix
    edCrossAxisCount(常用)
    SliverGridDelegateWithMax
    CrossAxisExtent 
    控制布局主要用在
    GridView.builder 里面
    • GridView.count实现静态网格布局

    import 'package:flutter/material.dart';
    
    
    void main(){
      runApp(MaterialApp(
        title: "GridView",
        home: MyApp(),
      ));
    }
    
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: GridView.count(
            crossAxisCount: 2,
            mainAxisSpacing: 10.0,
            crossAxisSpacing: 10.0,
            padding: EdgeInsets.all(5.0),
            children: <Widget>[
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
              Container(
                color: Colors.pink,
              ),
            ],
          ),
        );
      }
    }
    • GridView.builder实现动态网格列表

    import 'package:flutter/material.dart';
    
    
    void main(){
      runApp(MaterialApp(
        title: "GridView",
        home: MyApp(),
      ));
    }
    
    
    class MyApp extends StatelessWidget {
      List list = new List<String>();
      MyApp() {
        for(var i = 0; i < 9; i++) {
          this.list.add("图片$i");
        }
      }
      
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: GridView.builder(
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(  // 注意,使用了GridView.builder,又要设置网格属性的话,要用这个属性!
                crossAxisCount: 3,
                mainAxisSpacing: 10.0,
                crossAxisSpacing: 10.0,
              ),
              itemCount: this.list.length,
              itemBuilder: (context,index) {
                return Container(
                  color: Colors.pink,
                  child: Center(
                    child: Text(this.list[index]),
                  )
                );
              }
          )
        );
      }
    }
  • 相关阅读:
    一本通 1297:公共子序列
    【未完】一本通 1277:【例9.21】方格取数
    一本通 1295:装箱问题
    一本通 1268:【例9.12】完全背包问题
    【BZOJ4416】阶乘字符串(SHOI2013)-状压DP
    【BZOJ2658】小蓝的好友(ZJOI2012)-扫描线+Treap
    【BZOJ2159】Crash的文明世界-第二类斯特林数+树形DP
    【HDU4336】Card Collector-Min-Max容斥
    【BZOJ3997】组合数学(TJOI2015)-Dilworth定理+DP
    【LOJ2537】Minimax(PKUWC2018)-树形DP+线段树合并
  • 原文地址:https://www.cnblogs.com/chichung/p/11989914.html
Copyright © 2020-2023  润新知