Flutter实现网格布局3

(1)效果图:
在这里插入图片描述

(2)实现要点:

  • 循环遍历很多数量的图片用到了list
  • 图片尽可能的小,方便快速加载
  • GridView主要用于实现商品列表
  • 给widget设置高度无用,它会自适应(滚动加载所有图片)
  • SizeBox实现文字图片的间距

(3)实现代码:

import 'package:flutter/material.dart';
import 'listData.dart';

class GridPage extends StatelessWidget {
  List<Widget> _getListData() {
    var tempList = listData.map((value) {
      return Container(
        child: Column(
          children: <Widget>[
            Image.asset(value["imageUrl"]),
            SizedBox(
              height: 12
            ),
            Text(value["title"],
            textAlign: TextAlign.center,
            style: TextStyle(
              fontSize: 20.0
            ),),
          ],
        ),
        decoration: BoxDecoration(
          border: Border.all(color: Color.fromRGBO(233, 233, 233, 0.9),
          width: 1
          )
        ),
      );
    });
    return tempList.toList();
  }
  Widget centerSection() {
    return GridView.count(
      crossAxisSpacing: 10.0,
      mainAxisSpacing: 10.0,
      padding: EdgeInsets.all(10),
      crossAxisCount: 2,
      children: this._getListData(),
    );
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("甜宠软妹"),
      centerTitle: true,),
      body: centerSection(),
    );
  }
}

listData.dart文件里面的代码

List listData = [{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
{
  "title":"icecream",
  "author":"candy",
  "imageUrl":"images/candy.png",
},
];

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值