Android密码EntryCell

时间:2018-03-21 02:46:21

标签: c# xamarin xamarin.forms xamarin.android

我正在开发一个Xamarin.Forms PCL应用程序我现在正在添加一个设置页面和一个需要密码字段,但由于EntryCells不支持isPassword,我决定添加一个自定义渲染器。

我对iOS版本进行了编码,但它的工作正常,但Android版本并没有为它增色。

我的渲染器

[assembly: ExportRenderer(typeof(PasswordEntryCell), typeof(PasswordEntryCellAndroid))]
namespace SocialNetwork.Droid.Renderers
{
public class PasswordEntryCellAndroid : EntryCellRenderer
{
    protected override Android.Views.View GetCellCore(Cell item, Android.Views.View convertView, ViewGroup parent, Context context)
    {
        var cell = base.GetCellCore(item, convertView, parent, context) as EntryCellView;

        if (cell != null)
        {
            var textField = cell.EditText as TextView;
            textField.InputType = global::Android.Text.InputTypes.TextVariationPassword;
        }

        return cell;
    }
}
}

1 个答案:

答案 0 :(得分:2)

对于Android.Widget.EditText设置InputTypeTransformationMethod

var textField = FindViewById<EditText>(Resource.Id.textView1);
textField.InputType = global::Android.Text.InputTypes.TextVariationPassword;
textField.TransformationMethod = new Android.Text.Method.PasswordTransformationMethod();

注意:要显示密码,请将TransformationMethod指定给null;

注意:您应该将其转换为EditText

var textField = cell.EditText as EditText; // TextView;