GestureDetector
snippet.packages.flutter.lib.src.widgets.gesture_detector.52.
// ignore_for_file: directives_ordering
// ignore_for_file: unnecessary_import
// ignore_for_file: unused_import
// ignore_for_file: unused_element
// ignore_for_file: unused_local_variable
import 'dart:async';
import 'dart:convert';
import 'dart:math' as math;
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/semantics.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/animation.dart';
import 'package:flutter/services.dart';
// From: packages/flutter/lib/src/widgets/gesture_detector.dart:52
late bool _lights;
void setState(VoidCallback fn) { }
late String _last;
late Color _color;
dynamic expression189 =
RawGestureDetector(
gestures: {
TapGestureRecognizer: GestureRecognizerFactoryWithHandlers(
() => TapGestureRecognizer(),
(TapGestureRecognizer instance) {
instance
..onTapDown = (TapDownDetails details) { setState(() { _last = 'down'; }); }
..onTapUp = (TapUpDetails details) { setState(() { _last = 'up'; }); }
..onTap = () { setState(() { _last = 'tap'; }); }
..onTapCancel = () { setState(() { _last = 'cancel'; }); };
},
),
},
child: Container(width: 300.0, height: 300.0, color: Colors.yellow, child: Text(_last)),
)
;
class ForcePressGestureDetectorWithSemantics extends StatelessWidget {
const ForcePressGestureDetectorWithSemantics({
Key? key,
required this.child,
required this.onForcePress,
}) : super(key: key);
final Widget child;
final VoidCallback onForcePress;
@override
Widget build(BuildContext context) {
return RawGestureDetector(
gestures: {
ForcePressGestureRecognizer: GestureRecognizerFactoryWithHandlers(
() => ForcePressGestureRecognizer(debugOwner: this),
(ForcePressGestureRecognizer instance) {
instance.onStart = (_) => onForcePress();
}
),
},
behavior: HitTestBehavior.opaque,
semantics: _LongPressSemanticsDelegate(onForcePress),
child: child,
);
}
}
class _LongPressSemanticsDelegate extends SemanticsGestureDelegate {
_LongPressSemanticsDelegate(this.onLongPress);
VoidCallback onLongPress;
@override
void assignSemantics(RenderSemanticsGestureHandler renderObject) {
renderObject.onLongPress = onLongPress;
}
}
SHARE: