flutter 提示文本跟随鼠标
时间: 2024-09-14 07:07:43 浏览: 45
Flutter 是谷歌开发的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。在Flutter中,如果你想要实现提示文本跟随鼠标的效果,通常需要结合鼠标事件监听和布局管理来实现。
以下是一个简单的示例,展示如何使用`Listener`和`Positioned`来创建一个跟随鼠标指针的提示文本:
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Mouse Follow Text',
home: MouseFollowText(),
);
}
}
class MouseFollowText extends StatefulWidget {
@override
_MouseFollowTextState createState() => _MouseFollowTextState();
}
class _MouseFollowTextState extends State<MouseFollowText> {
Offset _mousePosition = Offset(0.0, 0.0);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Listener(
onPointerMove: (PointerMoveEvent details) {
setState(() {
_mousePosition = details.localPosition;
});
},
child: Stack(
children: <Widget>[
Center(
child: Text(
"Hover over me!",
style: TextStyle(fontSize: 20.0),
),
),
Positioned(
left: _mousePosition.dx,
top: _mousePosition.dy,
child: Material(
color: Colors.blue,
shape: CircleBorder(),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Pointer",
style: TextStyle(color: Colors.white),
),
),
),
),
],
),
),
);
}
}
```
在这个例子中,`Listener`是一个可以监听指针事件(包括鼠标和触摸事件)的widget。当鼠标移动时,`onPointerMove`事件被触发,更新状态`_mousePosition`的值。然后,`Stack`中的`Positioned` widget会根据`_mousePosition`的值来更新提示文本的位置,使文本跟随鼠标移动。
阅读全文