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 createState() => _HoverDetectorState(); } class _HoverDetectorState extends State { 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), ); } }