Listener Widget
Project Preview
- Interested in seeing the live demo? Click here to explore.
- Want to view the source code? Visit the project on GitHub.
Code Snippet
import 'package:flutter/material.dart';
class ListenerWidget extends StatefulWidget {
const ListenerWidget({super.key});
@override
State<ListenerWidget> createState() => _ListenerWidgetState();
}
class _ListenerWidgetState extends State<ListenerWidget> {
int numberOfPresses = 0;
int numberOfRelease = 0;
double x = 0.0;
double y = 0.0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Listener Widget"),
),
body: Listener(
onPointerDown: (PointerDownEvent event) {
setState(() {
numberOfPresses++;
});
},
onPointerMove: (PointerEvent details) {
setState(() {
x = details.position.dx;
y = details.position.dy;
});
},
onPointerUp: (PointerUpEvent event) {
setState(() {
numberOfRelease++;
});
},
child: Container(
width: double.infinity,
height: double.infinity,
color: Colors.orangeAccent,
child: Column(
children: [
Text(
'presses: $numberOfPresses',
style: const TextStyle(
fontSize: 40,
),
),
Text(
'presses: $numberOfRelease',
style: const TextStyle(
fontSize: 40,
),
),
Text(
'Cursor: (${x.toStringAsFixed(2)}, ${y.toStringAsFixed(2)})',
style: const TextStyle(
fontSize: 25,
),
)
],
),
),
),
);
}
}