添加 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;
}
如果需要多字段自动填充支持,可以使用 AutofillGroup
组件作为通用的 AutofillScope
。要获取文本输入最近的 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。 查看源代码 或 报告问题.