首页 > 解决方案 > 列表小部件的颤振高度没有减少

问题描述

我正在尝试减少小部件容器的高度和宽度,但它并没有减少。

代码

class MyWidget extends StatelessWidget {
  List datesData = [
    
      '09:00 am - 10:00 am',
      '10:00 am - 11:00 am',
      '11:00 am - 12:00 am',
      '12:00 am - 01:00 am',
      '01:00 am - 02:00 am',
      '02:00 am - 03:00 am',
      '03:00 am - 04:00 am',
      '04:00 am - 05:00 am'
    
  ];

  List<Widget> textWidgetList = List<Widget>();

  
  @override
  Widget build(BuildContext context) {
    List<Widget> textWidgetList = List<Widget>(); 
    for (int i = 0; i < 7; i++) {
      textWidgetList.add(
        Container(
          height: 100,
          width: 200,
          color: Colors.grey,
          child: Center(
            child: Text(datesData[i].toString()),
            )
        ),
      );
    }

    return   GridView(
              padding: EdgeInsets.all(0),
              shrinkWrap: true,
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 2,
                mainAxisSpacing: 1,
                crossAxisSpacing: 1,
              ),
              children: textWidgetList,
            
          );
  }
}

我需要像这样显示网格视图

在此处输入图像描述

它的显示是这样的

在此处输入图像描述

我尝试为容器指定高度和宽度,但它不起作用。

标签: flutter

解决方案


子项的宽度将由以及 和中的列 ( crossAxisCount)的数量决定。用于达到所需的高度。GridViewcrossAxisSpacingPaddingchildAspectRatio

GridView(
  padding: EdgeInsets.all(0),
  shrinkWrap: true,
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2,
    mainAxisSpacing: 1,
    crossAxisSpacing: 1,
    // use ratio to adjust height
    childAspectRatio: 3,
  ),
  children: textWidgetList,
),

推荐阅读