1 flutter flutter-dependencies flutter-layout flutter-animation flutter-web
您好,我想使用 Flutter 为我的文本悬停颜色。但我不知道怎么办。谁能告诉我该怎么做?这是我的代码......
Text(
"Lorem ipsum dolor sit amet,\n consectetur adipiscing elit.",
style: TextStyle(
color: Colors.white,
fontSize: 10,
fontFamily: 'Poppins',
)),
Run Code Online (Sandbox Code Playgroud)
我为此效果编写了“HoverBuilder”小部件
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
class HoverBuilder extends StatefulWidget {
const HoverBuilder({
required this.builder,
Key? key,
}) : super(key: key);
final Widget Function(bool isHovered) builder;
@override
_HoverBuilderState createState() => _HoverBuilderState();
}
class _HoverBuilderState extends State<HoverBuilder> {
bool _isHovered = false;
@override
Widget build(BuildContext context) {
return MouseRegion(
onEnter: (PointerEnterEvent event) => _onHoverChanged(enabled: true),
onExit: (PointerExitEvent event) => _onHoverChanged(enabled: false),
child: widget.builder(_isHovered),
);
}
void _onHoverChanged({required bool enabled}) {
setState(() {
_isHovered = enabled;
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后按如下方式包装小部件
HoverBuilder(
builder: (isHovered) {
return Text(
"Lorem ipsum dolor sit amet,\n consectetur adipiscing elit.",
style: TextStyle(
color: isHovered ? Colors.white : Colors.grey,
fontSize: 10,
fontFamily: 'Poppins',
),
);
},
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5873 次 |
| 最近记录: |