Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在GridView中每隔6个不同的项目渲染一个图像? 屏幕图像_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 如何在GridView中每隔6个不同的项目渲染一个图像? 屏幕图像

Flutter 如何在GridView中每隔6个不同的项目渲染一个图像? 屏幕图像,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,Api响应 我想创建一个产品的gridview,每行有2个项目,每6个产品我想添加一个屏幕宽度的图像 我试图通过创建一个返回一行2个项目的列表视图来定制它 如果*“is_banner”为假,如果“is_banner”为真的图像* 但它不起作用 ListView.builder( primary: false, shrinkWrap: true,

Api响应 我想创建一个产品的gridview,每行有2个项目,每6个产品我想添加一个屏幕宽度的图像

我试图通过创建一个返回一行2个项目的列表视图来定制它 如果*“is_banner”为假,如果“is_banner”为真的图像* 但它不起作用

ListView.builder(
                          primary: false,
                          shrinkWrap: true,
                          itemCount: _ads.length,
                          itemBuilder: (BuildContext context, int index) {
                            if (indexAd < _ads.length) {
                              print("Indexxxx" + indexAd.toString());
                              return _ads[indexAd].isBanner
                                  ? Padding(
                                      padding: const EdgeInsets.all(8.0),
                                      child: Container(
                                        width:
                                            MediaQuery.of(context).size.width,
                                        height: 100,
                                        decoration: BoxDecoration(
                                          borderRadius:
                                              BorderRadius.circular(8),
                                          image: DecorationImage(
                                            fit: BoxFit.cover,
                                            image: NetworkImage(
                                                _ads[indexAd++].image),
                                          ),
                                        ),
                                      ),
                                    )
                                  : Row(
                                      children: <Widget>[
                                        InkWell(
                                          onTap: () {
                                             print("--***********************---> ${indexDetail++}");
                                            // Navigator.of(context).push(
                                            //     PageRouteBuilder(
                                            //         pageBuilder: (_, __, ___) {

                                            //   return AdDetailPage(
                                            //     model: widget.model,
                                            //     adId: _ads[indexDetail].id,
                                            //   );
                                            // }));
                                          },
                                          child: ProductCard(
                                            name: _ads[indexAd].name,
                                            image: _ads[indexAd].image,
                                            address: _ads[indexAd].location,
                                            isFav: _ads[indexAd].isFav,
                                            date: _ads[indexAd].since,
                                            price: _ads[indexAd++].price,
                                          ),
                                        ),
                                        InkWell(
                                          onTap: () {
                                            print("--+++++++++++++++++++++++---> ${indexDetail++}");
                                            // Navigator.of(context).push(
                                            //     PageRouteBuilder(
                                            //         pageBuilder: (_, __, ___) {
                                            //   return AdDetailPage(
                                            //     model: widget.model,
                                            //     adId: _ads[indexDetail++].id,
                                            //   );
                                            // }));
                                          },
                                          child: ProductCard(
                                            name: _ads[indexAd].name,
                                            image: _ads[indexAd].image,
                                            address: _ads[indexAd].location,
                                            isFav: _ads[indexAd].isFav,
                                            date: _ads[indexAd].since,
                                            price: _ads[indexAd++].price,
                                          ),
                                        )
                                      ],
                                    );
                            } else {
                              return Container();
                            }
                          },
                        )
ListView.builder(
主要:错误,
收缩膜:对,
itemCount:_ads.length,
itemBuilder:(构建上下文,int索引){
if(索引长度){
打印(“indexx”+indexAd.toString());
return _ads[indexAd].isBanner
?填充物(
填充:常数边集全部(8.0),
子:容器(
宽度:
MediaQuery.of(context).size.width,
身高:100,
装饰:盒子装饰(
边界半径:
边界半径。圆形(8),
图像:装饰图像(
适合:BoxFit.cover,
图片:NetworkImage(
_ads[indexAd++].image),
),
),
),
)
:行(
儿童:[
墨水池(
onTap:(){
打印(“--******************-->${indexDetail++}”);
//导航器.of(上下文).push(
//PageRouteBuilder(
//页面生成器:(\uuuuuuuuuuuuuuuuuuuuuuuuuu){
//返回附加页(
//model:widget.model,
//adId:_ads[indexDetail].id,
//   );
// }));
},
孩子:产品卡(
名称:_ads[indexAd]。名称,
图片:_ads[indexAd]。图片,
地址:_ads[indexAd]。地址:,
isFav:_ads[indexAd].isFav,
日期:_ads[indexAd]。自,
价格:_广告[indexAd++]。价格,
),
),
墨水池(
onTap:(){
打印(“-->${indexDetail++}”);
//导航器.of(上下文).push(
//PageRouteBuilder(
//页面生成器:(\uuuuuuuuuuuuuuuuuuuuuuuuuu){
//返回附加页(
//model:widget.model,
//adId:_ads[indexDetail++].id,
//   );
// }));
},
孩子:产品卡(
名称:_ads[indexAd]。名称,
图片:_ads[indexAd]。图片,
地址:_ads[indexAd]。地址:,
isFav:_ads[indexAd].isFav,
日期:_ads[indexAd]。自,
价格:_广告[indexAd++]。价格,
),
)
],
);
}否则{
返回容器();
}
},
)

用于获取varoius大小的网格卡并按条件检查索引(
索引%6==0
),如果需要,可以通过更改大小来实现。

用于获取varoius大小的网格卡并按条件检查索引(
索引%6==0
),如果需要,可以根据需要更改大小。

您可以使用

以下是满足您需求的示例代码

new StaggeredGridView.countBuilder(
    crossAxisCount: 2,
    itemCount: 10,
    itemBuilder: (BuildContext context, int index) => new Container(
      color: Colors.green,
      child: new Center(
        child: new CircleAvatar(
          backgroundColor: Colors.white,
          child: new Text('$index'),
        ),
      ),
    ),
    staggeredTileBuilder: (int index) => (index % 7 == 0)
        ? new StaggeredTile.count(2, 1)
        : new StaggeredTile.count(1, 1),
    mainAxisSpacing: 4.0,
    crossAxisSpacing: 4.0,
  )

您可以使用

以下是满足您需求的示例代码

new StaggeredGridView.countBuilder(
    crossAxisCount: 2,
    itemCount: 10,
    itemBuilder: (BuildContext context, int index) => new Container(
      color: Colors.green,
      child: new Center(
        child: new CircleAvatar(
          backgroundColor: Colors.white,
          child: new Text('$index'),
        ),
      ),
    ),
    staggeredTileBuilder: (int index) => (index % 7 == 0)
        ? new StaggeredTile.count(2, 1)
        : new StaggeredTile.count(1, 1),
    mainAxisSpacing: 4.0,
    crossAxisSpacing: 4.0,
  )