嵌套的GridView抖动

问题描述

我正在尝试使用GridView构建器在flutter中构建嵌套列表。但是子列表的高度很小。由于我没有为任何列表指定高度,因此我不知道如何增加高度。


这是我用来构建嵌套列表的代码。

    return DecoratedBox(
      decoration: const BoxDecoration(
        color: Styles.scaffoldBackground,),child: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [
            _buildSearchBox(),Expanded(
            child:GridView.builder(
                shrinkWrap: true,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                    crossAxisCount: 1,childAspectRatio: 3/1,crossAxisSpacing: 20,mainAxisSpacing:50),padding: const EdgeInsets.all(10.0),itemCount: res2.length,itemBuilder: (context,index) => ChangeNotifierProvider.value(
       
                  value: res2[index],child:Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly,children:<Widget>[

                    GestureDetector(
                    onTap: (){
                      Navigator.push(
                          context,MaterialPageRoute(builder: (context) => ProductOverview()));

                    },child: shopItem(),Expanded(
                    child:Container(
                      height: 10*_blockSizeVertical,child:GridView.builder(
                    physics: ClampingScrollPhysics(),shrinkWrap: true,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 1,mainAxisSpacing: 20),itemCount: results.length,index) => ChangeNotifierProvider.value(
                      value: results[index],child: productItem(
                ),],);
  }

列表的屏幕截图:

img

解决方法

更改父GridView的childAspectRatio。它需要宽度/高度。

将其更改为childAspectRatio: 3/6 ;

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...