Flutter中MouseRegion修改TextFormField悬停光标不生效如何解决?
问题原因
TextFormField内部已内置默认的MouseRegion配置,其优先级高于外层包裹的自定义MouseRegion,因此外层的光标设置会被内部默认值覆盖,无法生效。
正确实现方式
直接使用TextFormField自带的mouseCursor属性配置光标样式即可,不需要额外包裹MouseRegion组件:
class EditProductScreen extends StatefulWidget { @override _EditProductScreenState createState() => _EditProductScreenState(); } class _EditProductScreenState extends State<EditProductScreen> { @override Widget build(BuildContext context) { return ListView( children: <Widget>[ TextFormField( // 直接在此处配置需要的光标样式 mouseCursor: SystemMouseCursors.text, ) ], ); } }
补充说明
- 如果你需要使用其他光标样式,替换
SystemMouseCursors.text为对应枚举值即可,例如SystemMouseCursors.click可实现悬停时显示点击手型。 mouseCursor属性为Flutter 2.0及以上版本支持,若使用时不存在该属性,请先升级Flutter SDK到2.0或更高版本。
内容的提问来源于stack exchange,提问作者Prasanna Kumar
相关产品推荐
相关产品推荐

