已弃用的 TextField.canRequestFocus
概述
#TextField.canRequestFocus
已弃用。您可以通过设置 TextField
的 FocusNode
的 canRequestFocus
参数来实现相同的功能。
背景
#添加 TextField.canRequestFocus
是为了支持 DropdownMenu
,它有一个有时不具有交互性的 TextField
。但是,通过设置 TextField
的 FocusNode
的 canRequestFocus
参数,可以实现相同的功能。DropdownMenu
已迁移到此方法,其他用例也应遵循相同的模式。
使用 TextField.canRequestFocus
的应用在调试模式下运行时会显示以下错误:“请改用 focusNode
”。具体来说,这意味着用户应该将一个 FocusNode
传递给 TextField.focusNode
,并设置 FocusNode.canRequestFocus
参数。
迁移指南
#要进行迁移,请移除 TextField.canRequestFocus
参数。创建一个 FocusNode
,并将 FocusNode.canRequestFocus
参数设置为所需的值,然后将其传递给 TextField.focusNode
。
迁移前的代码
dart
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return TextField(
canRequestFocus: false,
);
}
}
迁移后的代码
dart
class _MyWidgetState extends State<MyWidget> {
final FocusNode _focusNode = FocusNode(canRequestFocus: false);
@override
Widget build(BuildContext context) {
return TextField(
focusNode: _focusNode,
);
}
}
时间线
#已合并到版本:已回滚,等待重新合并
稳定版本:尚未发布
参考资料
#API 文档
相关问题
相关 PR