发布
社区首页 >问答首页 >单子滚动视图不能与手势检测器一起工作

单子滚动视图不能与手势检测器一起工作
EN

Stack Overflow用户
提问于 2020-11-20 14:03:29
回答 2查看 600关注 0票数 0

我已经创建了一个SingleChildScrollView。手势检测器有一个父容器(红色)和一个子容器(蓝色)。滚动视图在父级上有效,但在子级上无效。我该怎么办?谢谢你的帮助。这就是代码。

代码语言:javascript
代码运行次数:0
复制
body: SingleChildScrollView(
          child: Column(
            children: [
              Container(
                color: Colors.redAccent[200],
                height: 1000.0,
                width: 500.0,
                alignment: Alignment.center,
              ),

              GestureDetector(
                onVerticalDragUpdate: (DragUpdateDetails details) {
                  print("Start");
                  print(details.localPosition);
                },
                child: Container(
                  color: Colors.blueAccent[200],
                  height: 10000.0,
                  width: 500.0,
                  alignment: Alignment.center,
                ),

              )
            ],
          ),
        )
EN

回答 2

Stack Overflow用户

发布于 2020-11-20 15:16:40

尝试使用SingleChildScrollView包装GestureDetector,如下所示。

代码语言:javascript
代码运行次数:0
复制
body: SingleChildScrollView(
  child: Column(
    children: [
      Container(
        color: Colors.redAccent[200],
        height: 1000.0,
        width: 500.0,
        alignment: Alignment.center,
      ),
      SingleChildScrollView(
        child: GestureDetector(
          onVerticalDragUpdate: (DragUpdateDetails details) {
            print("Start");
            print(details.localPosition);
          },
          child: Container(
            color: Colors.blueAccent[200],
            height: 10000.0,
            width: 500.0,
            alignment: Alignment.center,
          ),
        ),
      ),
    ],
  ),
);
票数 0
EN

Stack Overflow用户

发布于 2020-11-20 15:55:42

onVerticalDragUpdate会阻止SingleChildScrollView滚动,因为它只检测垂直拖动更新,当您按住它拖动小部件时,它会忽略ScrollView并监听小部件的可拖动更新。运行以下代码。它现在对我起作用了。

代码语言:javascript
代码运行次数:0
复制
body: SingleChildScrollView(
          child: Column(
            children: [
              Container(
                color: Colors.redAccent[200],
                height: 1000.0,
                width: 500.0,
                alignment: Alignment.center,
              ),
              GestureDetector(
                // onVerticalDragUpdate: (DragUpdateDetails details) {
                //   print("Start");
                //   print(details.localPosition);
                // },
                child: Container(
                  color: Colors.blueAccent[200],
                  height: 1000.0,
                  width: 500.0,
                  alignment: Alignment.center,
                ),

              )
            ],
          ),
        )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64924580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档