flutter 宫格组件GridView

方式一:

GridView.count(
  shrinkWrap: true,  尽可能满足自身大小而非父容器
  crossAxisCount: 3,  列数
  crossAxisSpacing: 20.0, 设置左右组件距离
  mainAxisSpacing:20.0,  设置上下组件距离
  padding: EdgeInsets.all(10),
  childAspectRatio: 0.7,   通过比例设置子组件高度,越小越高,在宫格里子组件设置高度无效
  children:this._get(),  类型为widget的数组,List<Widget>

);

方式二:

GridView.builder(
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( 
  
      crossAxisCount: 3,    列数
	  mainAxisSpacing : 0.0, 设置左右组件距离
	  crossAxisSpacing : 0.0, 设置上下组件距离
	  childAspectRatio : 1.0,  通过比例设置子组件高度,越小越高,在宫格里子组件设置高度无效
  ),
  itemCount:10,    内容数量
  itemBuilder:(item,index){
    return  组件
  }
);

代码示例:

import 'package:flutter/material.dart';

void main(){
  runApp(App());
}

class App extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      home:Scaffold(
        appBar:AppBar(title:Text('aa')),
        body:Home2()
        )
    );
  }
}

class Home extends StatelessWidget{

List<Widget> _get()
{
  List<Widget> list=new List();
  for(int i=0;i<10;i++)
  {
    list.add(Container(height:400.0,child: Text("拉拉"),alignment: Alignment.center,color: Colors.blue,));
  }

  return list;
}

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return GridView.count(
      crossAxisCount: 3, //列数
      crossAxisSpacing: 20.0,//设置左右组件距离
      mainAxisSpacing:20.0, //设置上下组件距离
      padding: EdgeInsets.all(10),
      childAspectRatio: 0.7, //通过比例设置子组件高度,越小越高,在宫格里子组件设置高度无效
      children:this._get(),

    );
  }
}


class Home2 extends StatelessWidget{
List<Widget> _get()
{
  List<Widget> list=new List();
  for(int i=0;i<10;i++)
  {
    list.add(Container(height:400.0,child: Text("拉拉"),alignment: Alignment.center,color: Colors.blue,));
  }

  return list;
}

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return GridView.builder(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( //配置.count形势下的参数
          crossAxisCount: 3,
      ),
      itemCount:10,  
      itemBuilder:(item,index){
        return Text('hh');
      }
      );
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值