新增 TextInputClient.currentAutofillScope 屬性
摘要
#TextInputClient
介面新增了一個新的 getter,TextInputClient.currentAutofillScope
;所有 TextInputClient
子類別都必須提供 currentAutofillScope
的具體實作。
這個 getter 允許 TextInputClient
觸發自動填寫,其中包含多個邏輯上連接的輸入欄位。例如,「使用者名稱」欄位可以觸發自動填寫,同時填寫它自己和與它關聯的「密碼」欄位。
背景
#在許多平台上,自動填寫服務能夠在單次自動填寫嘗試中填寫多個輸入欄位。例如,使用者名稱欄位和密碼欄位通常可以一次性自動填寫。因此,即將觸發自動填寫的 Flutter 輸入欄位也應向平台提供有關邏輯上與其連接的其他可自動填寫輸入欄位的資訊。TextInputClient.currentAutofillScope
定義與此 TextInputClient
邏輯上連接的輸入欄位群組,並且可以一起自動填寫。
變更說明
#TextInputClient
現在有一個額外的 getter,它會回傳此客戶端所屬的 AutofillScope
。輸入客戶端使用此 getter 從同一範圍內的其他可自動填寫輸入欄位收集與自動填寫相關的資訊。
abstract class TextInputClient {
AutofillScope get currentAutofillScope;
}
如果您在編譯 Flutter 應用程式時看到錯誤訊息「missing concrete implementation of 'getter TextInputClient.currentAutofillScope'」,請按照下方列出的遷移步驟操作。
遷移指南
#如果您不打算在您的 TextInputClient
子類別中加入多欄位自動填寫支援,只需在 getter 中回傳 null
即可
class CustomTextField implements TextInputClient {
// Not having an AutofillScope does not prevent the input field
// from being autofilled. However, only this input field is
// autofilled when autofill is triggered on it.
AutofillScope get currentAutofillScope => null;
}
如果需要多欄位自動填寫支援,常用的 AutofillScope
是 AutofillGroup
小工具。要取得最接近文字輸入的 AutofillGroup
小工具,請使用 AutofillGroup.of(context)
class CustomTextFieldState extends State<CustomTextField> implements TextInputClient {
AutofillScope get currentAutofillScope => AutofillGroup.of(context);
}
如需更多資訊,請查看 AutofillGroup
。
時間軸
#已於版本中發佈:1.18.0
穩定版本:1.20
參考資料
#API 文件
相關問題
相關 PR
除非另有說明,本網站上的文件反映了 Flutter 的最新穩定版本。頁面上次更新於 2024-04-04。 檢視原始碼 或 回報問題。