Listener class
A widget that calls callbacks in response to common pointer events.
It listens to events that can construct gestures, such as when the pointer is pressed, moved, then released or canceled.
It does not listen to events that are exclusive to mouse, such as when the mouse enters, exits or hovers a region without pressing any buttons. For these events, use MouseRegion.
Rather than listening for raw pointer events, consider listening for higher-level gestures using GestureDetector.
Layout behavior
See BoxConstraints for an introduction to box layout models.
If it has a child, this widget defers to the child for sizing behavior. If it does not have a child, it grows to fit the parent instead.
This example makes a Container react to being touched, showing a count of
the number of pointer downs and ups.
To create a local project with this code sample, run:
flutter create --sample=widgets.Listener.1 mysample
flutter create --sample=widgets.Listener.1 mysample
This example makes a Container react to being touched, showing a count of
the number of pointer downs and ups.
import 'package:flutter/widgets.dart';
// ...
int _downCounter = 0;
int _upCounter = 0;
double x = 0.0;
double y = 0.0;
void _incrementDown(PointerEvent details) {
_updateLocation(details);
setState(() {
_downCounter++;
});
}
void _incrementUp(PointerEvent details) {
_updateLocation(details);
setState(() {
_upCounter++;
});
}
void _updateLocation(PointerEvent details) {
setState(() {
x = details.position.dx;
y = details.position.dy;
});
}
@override
Widget build(BuildContext context) {
return ConstrainedBox(
constraints: new BoxConstraints.tight(Size(300.0, 200.0)),
child: Listener(
onPointerDown: _incrementDown,
onPointerMove: _updateLocation,
onPointerUp: _incrementUp,
child: Container(
color: Colors.lightBlueAccent,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('You have pressed or released in this area this many times:'),
Text(
'$_downCounter presses\n$_upCounter releases',
style: Theme.of(context).textTheme.headline4,
),
Text(
'The cursor is here: (${x.toStringAsFixed(2)}, ${y.toStringAsFixed(2)})',
),
],
),
),
),
);
}
- Inheritance
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- Listener
Constructors
-
Listener({Key key,
void onPointerDown(PointerDownEvent event ), void onPointerMove(PointerMoveEvent event ), @Deprecated('Use MouseRegion.onEnter instead. See MouseRegion.opaque for behavioral difference. ' 'This feature was deprecated after v1.10.14.') void onPointerEnter(PointerEnterEvent event ), @Deprecated('Use MouseRegion.onExit instead. See MouseRegion.opaque for behavioral difference. ' 'This feature was deprecated after v1.10.14.') void onPointerExit(PointerExitEvent event ), @Deprecated('Use MouseRegion.onHover instead. See MouseRegion.opaque for behavioral difference. ' 'This feature was deprecated after v1.10.14.') void onPointerHover(PointerHoverEvent event ), void onPointerUp(PointerUpEvent event ), void onPointerCancel(PointerCancelEvent event ), void onPointerSignal(PointerSignalEvent event ), HitTestBehavior behavior: HitTestBehavior.deferToChild, Widget child} ) -
Creates a widget that forwards point events to callbacks. [...]
const
Properties
- behavior → HitTestBehavior
-
How to behave during hit testing.
final
- hashCode → int
-
The hash code for this object. [...]
@nonVirtual, read-only, inherited
- key → Key
-
Controls how one widget replaces another widget in the tree. [...]
final, inherited
-
onPointerCancel
→ void Function(PointerCancelEvent event
) -
Called when the input from a pointer that triggered an onPointerDown is
no longer directed towards this receiver.
final
-
onPointerDown
→ void Function(PointerDownEvent event
) -
Called when a pointer comes into contact with the screen (for touch
pointers), or has its button pressed (for mouse pointers) at this widget's
location.
final
-
onPointerEnter
→ void Function(PointerEnterEvent event
) -
Called when a pointer enters the region for this widget. [...]
final
-
onPointerExit
→ void Function(PointerExitEvent event
) -
Called when a pointer leaves the region for this widget. [...]
final
-
onPointerHover
→ void Function(PointerHoverEvent event
) -
Called when a pointer that has not triggered an onPointerDown changes
position. [...]
final
-
onPointerMove
→ void Function(PointerMoveEvent event
) -
Called when a pointer that triggered an onPointerDown changes position.
final
-
onPointerSignal
→ void Function(PointerSignalEvent event
) -
Called when a pointer signal occurs over this object. [...]
final
-
onPointerUp
→ void Function(PointerUpEvent event
) -
Called when a pointer that triggered an onPointerDown is no longer in
contact with the screen.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Methods
-
build(
BuildContext context ) → Widget -
Describes the part of the user interface represented by this widget. [...]
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree. [...]
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children. [...]
@protected, inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties ) → void -
Add additional properties associated with the node. [...]
inherited
-
noSuchMethod(
Invocation invocation ) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
toDiagnosticsNode(
{String name, DiagnosticsTreeStyle style} ) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep. [...]
inherited
-
toString(
{DiagnosticLevel minLevel: DiagnosticLevel.info} ) → String -
Returns a string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug} ) → String -
Returns a string representation of this node and its descendants. [...]
inherited
-
toStringShallow(
{String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug} ) → String -
Returns a one-line detailed description of the object. [...]
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other ) → bool -
The equality operator. [...]
@nonVirtual, inherited