Flutter 颤振:通过强制手势修正syncfusion日历滚动?

Flutter 颤振:通过强制手势修正syncfusion日历滚动?,flutter,syncfusion,gesture-recognition,syncfusion-calendar,Flutter,Syncfusion,Gesture Recognition,Syncfusion Calendar,我有一个问题,这个SfCalendar的屏幕截图显示了与其他孩子在列中的月份(另请参见end以获取最小可重复生成的示例代码): 问题很简单:当触摸点从另一个列开始时,垂直滚动可以正常工作,但当触摸点从SfCalendar列开始时,列不会滚动。日历似乎完全吸收了所有垂直拖动触摸手势。这是非常恼人的,因为SfCalendar在月模式下没有使用垂直拖动手势,所以它确实应该允许列滚动 设置debugPrintGestureArenaDiagnostics=true将显示您尝试在日历上垂直滚动时发生的情

我有一个问题,这个
SfCalendar
的屏幕截图显示了与其他孩子在
列中的月份(另请参见end以获取最小可重复生成的示例代码):

问题很简单:当触摸点从另一个
列开始时,垂直滚动可以正常工作,但当触摸点从
SfCalendar
列开始时,
列不会滚动。日历似乎完全吸收了所有垂直拖动触摸手势。这是非常恼人的,因为SfCalendar在月模式下没有使用垂直拖动手势,所以它确实应该允许列滚动

设置
debugPrintGestureArenaDiagnostics=true
将显示您尝试在日历上垂直滚动时发生的情况:

I/flutter (15390): Gesture arena 24   ❙ ★ Opening new gesture arena.
I/flutter (15390): Gesture arena 24   ❙ Adding: TapGestureRecognizer#6f41b(debugOwner: GestureDetector, state: ready, button: 1)
I/flutter (15390): Gesture arena 24   ❙ Adding: TapGestureRecognizer#0240c(debugOwner: GestureDetector, state: ready, button: 1)
I/flutter (15390): Gesture arena 24   ❙ Adding: VerticalDragGestureRecognizer#736cf(debugOwner: GestureDetector, start behavior: start)
I/flutter (15390): Gesture arena 24   ❙ Adding: HorizontalDragGestureRecognizer#bde3d(debugOwner: GestureDetector, start behavior: start)
I/flutter (15390): Gesture arena 24   ❙ Adding: VerticalDragGestureRecognizer#5137d(start behavior: start)
I/flutter (15390): Gesture arena 24   ❙ Closing with 5 members.
I/flutter (15390): Gesture arena 24   ❙ Rejecting: TapGestureRecognizer#6f41b(debugOwner: GestureDetector, state: possible, button: 1, sent tap down)
I/flutter (15390): Gesture arena 24   ❙ Rejecting: TapGestureRecognizer#0240c(debugOwner: GestureDetector, state: possible, button: 1, sent tap down)
I/flutter (15390): Gesture arena 24   ❙ Accepting: VerticalDragGestureRecognizer#736cf(debugOwner: GestureDetector, start behavior: start)
I/flutter (15390): Gesture arena 24   ❙ Self-declared winner: VerticalDragGestureRecognizer#736cf(debugOwner: GestureDetector, start behavior: start)

似乎有两个
垂直拖动识别器
s-我猜一个是
SingleChildScrollView
,另一个是
SfCalendar
(同样,我不知道日历为什么有垂直拖动识别器,因为它没有垂直拖动功能)。看起来日历通过垂直拖动赢得竞技场,然后吞下事件,什么也不做

所以我的问题是:

如何让我的
SingleChildScrollView
赢得竞技场?或者还有其他方法可以实现这一点吗?

最小可复制示例:

公共规范yaml

name: syncfusioncalendarscroll
description: A new Flutter application.

publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  syncfusion_flutter_calendar: ^18.1.59-beta

flutter:
  uses-material-design: true

名称:syncfusioncalendarscroll
描述:一个新的颤振应用。
发布到:“无”#如果要发布到pub.dev,请删除此行
版本:1.0.0+1
环境:

sdk:“>=2.7.0我们已经发现并修复了报告的问题“当接触点位于列中的日历上时滚动不起作用”。我们将在即将发布的第2卷版本中包含该问题的修复,该版本预计将在本周末推出


您也可以通过我们的或与我们联系。我们随时乐意为您提供帮助!

我们已经发现并修复了报告的问题“当接触点位于列中的日历上时滚动不起作用”。我们将在即将发布的第2卷版本中包含该问题的修复,该版本预计将在本周末推出

您也可以通过我们的或联系我们。我们随时乐意为您提供帮助!

会有帮助吗?会有帮助吗?
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';

void main() {
  debugPrintGestureArenaDiagnostics = true;
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            SizedBox(
              height: 700,
              child: Placeholder(color: Colors.amber),
            ),
            SfCalendar(
              view: CalendarView.month,
            ),
            SizedBox(
              height: 700,
              child: Placeholder(color: Colors.blue),
            ),
          ],
        ),
      )
    );
  }
}