Gallery/lib/hover_detector.dart

26 lines
737 B
Dart
Raw Normal View History

import 'package:flutter/material.dart';
class HoverDetector extends StatefulWidget {
const HoverDetector(
{Key? key, required this.defaultChild, required this.hoverChild})
: super(key: key);
final Widget defaultChild;
final Widget hoverChild;
@override
State<HoverDetector> createState() => _HoverDetectorState();
}
class _HoverDetectorState extends State<HoverDetector> {
bool amIHovering = false;
@override
Widget build(BuildContext context) {
return MouseRegion(
child: amIHovering ? widget.hoverChild : widget.defaultChild,
onEnter: (PointerEvent details) => setState(() => amIHovering = true),
onExit: (PointerEvent details) => setState(() => amIHovering = false),
);
}
}