我知道从某些版本的Android可以检测到该字段是输入用户名/密码/姓氏/名字吗?
但是要实现此功能,我需要在Xamarin Form中做什么?
答案 0 :(得分:3)
在API-27 +(Oreo +)中,最好在自动填充框架中使用AutoCompleteTextView
,但并非绝对必要。
注意:当前Xamarin.Forms
(最多3.0.x
)尚未在任何内置窗体的控件中实现Android本机AutoCompleteTextView
,但您只能使用{{1 }}控件(在Android上实现为Entry
。
在基于Android的TextView
或TextView
上,您应以编程方式调用:
AutoCompleteTextView
示例:
* SetAutofillHints
* ImportantForAutofill
注意:在本机usernameView.SetAutofillHints(new string[2] {"emailAddress", "userName"});
usernameView.ImportantForAutofill = ImportantForAutofill.Yes;
中,您只需在AXML布局中设置这些属性即可。
re:https://codelabs.developers.google.com/codelabs/optimize-autofill/#0
注意:请查看Android文档,以了解有关Xamarin.Android
字符串应设置为...的基础知识。
在AutofillHints
中,您可以通过自定义渲染器或效果来做到这一点:
Xamarin.Forms
自动填充Android效果示例:Xamarin.Forms
[assembly: ResolutionGroupName("EffectsAutoFill")]
[assembly: ExportEffect(typeof(AutoFillUserNameEffect), "AutoFillUserNameEffect")]
namespace Effects
{
public class AutoFillUserNameEffect : PlatformEffect
{
protected override void OnAttached()
{
var textView = (TextView)Control;
if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
textView.SetAutofillHints(new string[2] { "emailAddress", "userName" });
textView.ImportantForAutofill = ImportantForAutofill.Yes;
}
protected override void OnDetached()
{
}
}
}
您的窗体的应用程序现在将触发用户在其设备上启用的任何自动填充服务:Google,LastPass等...(当然,取决于用户是否启用一项...)