Flutter利用GridView实现网格的商品布局
GridView.count 生成的是静态网格
效果:
代码:
import 'package:flutter/material.dart'; void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key); @override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("flutter demo"),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
HomeContent({Key key}) : super(key: key);
//动态列表数据:
List listData=[
{'title':'','img':"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"},
{'title':'','img':"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"},
{'title':'','img':"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"},
{'title':'','img':"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"},
{'title':'','img':"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"},
];
List<Widget> _getListData(){
//第一种设置数据:
// List<Widget> list=new List();
// for(var i=0;i<20;i++){
// list.add(Container(
// alignment: Alignment.center,
// color: Colors.blue,
// child: Text("这是第$i 条数据",style: TextStyle(
// color: Colors.white,fontSize: 20
// )),
// ));
// }
// return list.toList(); //第二种设置数据:
var tempList=listData.map((value){
return Container(
child: Column(
children: <Widget>[
Image.network(value['img']),
SizedBox(height: ),
Text(value['title'],
textAlign: TextAlign.center,
style: TextStyle(
fontSize:
),
) ],
),
decoration: BoxDecoration(
border: Border.all(
color: Color.fromRGBO(, ,, 0.9),
width:
)
),
);
});
return tempList.toList();
} @override
Widget build(BuildContext context) {
return GridView.count(
crossAxisSpacing: 20.0, //水平子Widget之间的间距:
mainAxisSpacing: 20.0, //垂直Widget之间的间距:
padding: EdgeInsets.all(),
crossAxisCount: , //一行的Widget数量:
childAspectRatio: 0.7, //设置宽高比例
children: this._getListData(),
);
}
}
import 'package:flutter/material.dart'; void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key); @override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("flutter demo"),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
HomeContent({Key key}) : super(key: key);
//动态列表数据:
List listData = [
{
'title': '',
'img':
"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"
},
{
'title': '',
'img':
"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"
},
{
'title': '',
'img':
"https://www.itying.com/images/201905/thumb_img/1101_thumb_G_1557845381862.jpg"
},
];
Widget _getListData(context, index) {
//第二种设置数据:
return Container(
child: Column(
children: <Widget>[
Image.network(listData[index]['img']),
// SizedBox(height: 10),
Text(
listData[index]['title'],
textAlign: TextAlign.center,
style: TextStyle(fontSize: ),
)
],
),
decoration: BoxDecoration(
border:
Border.all(color: Color.fromRGBO(, , , 0.9), width: )),
);
} @override
Widget build(BuildContext context) {
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisSpacing: 10.0, //水平子Widget之间间距
mainAxisSpacing: 10.0, //垂直子Widget之间间距
crossAxisCount: //一行的Widget数量
),
itemCount: listData.length,
itemBuilder: this._getListData,
);
}
}
Flutter利用GridView实现网格的商品布局的更多相关文章
- Android商城开发系列(十三)—— 首页热卖商品布局实现
热卖商品布局效果如下图: 这个布局跟我们上节做的推荐是一样的,也是用LinearLayout和GridView去实现的,新建一个hot_item.xml,代码如下所示: <?xml versio ...
- ViewPager+GridView实现首页导航栏布局分页效果
如图是效果图用ViewPager+GridView实现首页导航栏布局分页效果来实现的效果 Demo下载地址:http://download.csdn.net/detail/qq_29774291/96 ...
- 利用column-width属性设置多栏布局
css样式设置为: div{ background:blanchedalmond; margin:0 auto; width:1230px; -moz-column-width:400px; -web ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- 利用selenium爬取京东商品信息存放到mongodb
利用selenium爬取京东商城的商品信息思路: 1.首先进入京东的搜索页面,分析搜索页面信息可以得到路由结构 2.根据页面信息可以看到京东在搜索页面使用了懒加载,所以为了解决这个问题,使用递归.等待 ...
- CSS3 网格布局(grid layout)基础知识 - 隐式网格自己主动布局(grid-auto-rows/grid-auto-columns/grid-auto-flow)
网格模板(grid-template)属性及其普通写法(longhands)定义了一个固定数量的轨道.构成显式网格. 当网格项目定位在这些界限之外.网格容器通过添加隐式网格线生成隐式网格轨道. 这些隐 ...
- 37 Flutter仿京东商城项目 结算页面布局
加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...
- 07-08 Flutter仿京东商城项目 商品分类页面布局:Flutter仿京东商城项目 商品分类页面数据渲染
Flutter实战(交流群:452892873) 本项目是一个实战项目,根据目录建文件,并复制从第一节到最新更新的文章,可以构成完整的一个请求后台数据的项目: CateModel.dart class ...
- 如何给GridView添加网格
如何给gridview的单元格加上分割线 原文链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/1227/1582.html ...
随机推荐
- 关于redis的持久化策略
Redis的持久化 Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志. Redis的RDB快照 Redis支持将当前数据的快 ...
- ping命令传递信息
IP: # 适用于 eth0 inet addr: IP的情况 ping `ifconfig eth0|grep 'inet '|awk '{ print $2}'|awk -F: '{print $ ...
- koa2 快速开始
环境准备 Node.js简介 因为node.js v7.6.0开始完全支持async/await,不需要加flag,所以node.js环境都要7.6.0以上.Node.js 是一个基于 Chrome ...
- django项目部署服务器后无法发送邮箱 错误信息:Connection unexpectedly closed
使用配置: python 3.7 + django 2.2.1 发送邮件模块 : from django.core.mail import send_mail 服务器:Centos7 阿里云轻 ...
- kafka数据组织+集群架构
1.数据组织: partition:Kafka的topic可以划分成一个或多个partition,每个partition存储着这个topic的一部分数据. partition副本:若一个topic的副 ...
- z-tree的使用bug
最近折腾了下z-tree,这个存在一个bug: 新增icon出不来,废话少说上代码: <style type="text/css"> .ztree li span.bu ...
- jupyter安装小结
jupyter安装小结 更新时间:2016年03月13日 15:42:37 投稿:hebedich 我要评论 jupyter (之前的 ipython notebook )于我的最大意义在于 ...
- 动手动脑-------找出指定文件夹下所有扩展名为.txt和.java的文件
思路:首先向获取文件,如果是文件的话,则判断它是否以".txt"或".java"结尾,如果是则输出它的路径.如果是文件夹的话,则需获取子文件,利用递归方法遍历子 ...
- NISP二级笔记(二) 信息安全管理体系
- ico图标和制作网站(比特虫)
1.怎么找到网站的图标: 网址/favicon.ico 代码引入 <link rel="icon" href="//www.jd.com/favicon.ico&q ...