Flutter中ListView.builder上的GestureDetector

时间:2020-11-12 21:14:34

标签: flutter listview flutter-layout

我试图在包含图像的ListView小部件上添加一个GestureDetector,但它似乎不起作用。之前曾有人问过类似的问题,但这也无济于事。

这是我的代码:

ListView.builder(
          scrollDirection: Axis.horizontal,
          itemBuilder: (BuildContext ctx, int index) {
            return Container(
                width: 160,
                child: Card(
                 child: Wrap(
                  children: <Widget>[
                     GestureDetector( onTap: () => Print_on_layout(index),
                      child: Image.network(a[index], fit: BoxFit.fill,)
                     )
                  ],
                ),
              ),
            );
          },
          itemCount: a.length,
        ),

2 个答案:

答案 0 :(得分:0)

我想这与包装小部件有关,它可能与可以检测到轻敲的空间搞混了。尝试将其删除。如果这不起作用,请告诉我们您是否遇到错误。

答案 1 :(得分:0)

使用姿势检测器作为不在图像上的容器的父对象。 就像在列表中一样,您仅返回单个widgit,因此您应该将容器与手势检测器一起使用。 尝试以下代码:

ListView.builder(
            scrollDirection: Axis.horizontal,
              itemBuilder: (BuildContext ctx, int index) {
                return
                  GestureDetector(onTap: () => Print_on_layout(index),
    
                  child: Container(
                    width: 160,
                    child: Card(
                      child: Wrap(
                        children: <Widget>[
                          Image.network(a[index], fit: BoxFit.fill,)
                        ],
                      ),
                    ),
                  ),
                );
              },
              itemCount: a.length,
            ),