已弃用的 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.canRequestFocus
参数(设置为所需值)的 FocusNode
,并将其传递给 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
- 为 DropdownMenu 添加 requestFocusOnTap
- 将 TextField.canRequestFocus 替换为 TextField.focusNode.canRequestFocus
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新时间:2024-08-06。 查看源代码 或 报告问题.