概述

#

TextField.canRequestFocus 已棄用。您可以透過設定 TextFieldFocusNodecanRequestFocus 引數來實現相同的功能。

背景

#

新增 TextField.canRequestFocus 是為了支援 DropdownMenu,它有一個有時不具有互動性的 TextField。但是,透過設定 TextFieldFocusNodecanRequestFocus 引數,可以實現相同的功能。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