首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Xamarin中定义条目用户名/密码/名字/姓氏,以便android自动填充它?

如何在Xamarin中定义条目用户名/密码/名字/姓氏,以便android自动填充它?
EN

Stack Overflow用户
提问于 2018-06-20 16:10:22
回答 1查看 632关注 0票数 1

我知道Android从某些版本可以检测到该字段是输入用户名/密码/姓氏/名字的字段吗?

但是我需要在Xamarin形式中做些什么才能实现它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 04:53:10

在API-27+ (Oreo+)中,最好使用带有自动填充框架的AutoCompleteTextView,但不是绝对需要的。

注意:Xamarin.Forms目前(直到3.0.x)还没有在任何内置窗体控件中实现Android原生AutoCompleteTextView,但是您可以只使用Entry控件(在Android上实现为TextView )。

在基于Android的TextViewAutoCompleteTextView上,您应该以编程方式调用:

代码语言:javascript
复制
* SetAutofillHints
* ImportantForAutofill

示例:

代码语言:javascript
复制
usernameView.SetAutofillHints(new string[2] {"emailAddress", "userName"});
usernameView.ImportantForAutofill = ImportantForAutofill.Yes;

注意:在原生Xamarin.Android中,您可以只在AXML布局中设置这些属性。

回复:https://codelabs.developers.google.com/codelabs/optimize-autofill/#0

注意:查看Android文档中关于AutofillHints字符串应该设置为什么的基础知识...

Xamarin.Forms中,您可以通过自定义渲染器或效果来执行此操作:

Xamarin.Forms自动填充安卓特效示例:

代码语言:javascript
复制
[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()
        {
        }
    }
}

用法:

代码语言:javascript
复制
emailEntry.Effects.Add(Effect.Resolve("EffectsAutoFill.AutoFillUserNameEffect"));

你的表单应用程序现在将触发用户在其设备上启用的所有自动填充服务:谷歌、LastPass等。(当然,这取决于用户是否启用一个...)

输出:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50943371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档