添加 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 应用时看到错误消息“缺少'getter TextInputClient.currentAutofillScope'的具体实现”,请按照下面列出的迁移步骤操作。
迁移指南
#如果您不打算向您的 TextInputClient
子类添加多字段自动填充支持,只需在 getter 中返回 null
:
class CustomTextField implements TextInputClient {
// 没有 AutofillScope 不会阻止输入字段被自动填充。但是,只有在该输入字段上触发自动填充时,才会自动填充此输入字段。
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 的最新稳定版本。页面最后更新于 2025-01-30。 查看源代码 或 报告问题。