如何解决尝试将凭据置于 xamarin 表单应用程序中的条目控制中时,redmi 设备重新启动
我在特定设备(小米 Note7 Pro)上遇到输入字段问题,即当我尝试在输入字段中输入值时,它会导致设备(小米 Note7 Pro)重启 Miui。我已经做了一些挖掘,但还没有找到任何解决方案。请帮我解决这个问题。
我也尝试在输入时更改键盘类型,但仍然没有成功。下面是入口控制xaml的示例:
<AbsoluteLayout>
<controls:ExtEntry x:Name="txtUsername"
Placeholder="Username"
Keyboard="Email"
Text="{Binding Username}"
Style="{StaticResource EntryImage}"/>
<Image Source="usericon"
Style="{StaticResource RightimageIcon}"/>
</AbsoluteLayout>
以下是我的 ExtEntry(渲染器)的代码:
public class CustomEntry : EntryRenderer
{
ExtEntry element;
public CustomEntry(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control == null || e.NewElement == null) return;
element = (ExtEntry)this.Element;
var editText = this.Control;
if (!string.IsNullOrEmpty(element.Image))
{
switch (element.ImageAlignment)
{
case ImageAlignment.Left:
editText.SetCompoundDrawablesWithIntrinsicBounds(
GetDrawable(element.Image),null,null);
break;
case ImageAlignment.Right:
editText.SetCompoundDrawablesWithIntrinsicBounds(
null,GetDrawable(element.Image),null);
break;
}
}
editText.CompoundDrawablePadding = 25;
// Control.Background.SetColorFilter(element.LineColor.ToAndroid(),// PorterDuff.Mode.SrcAtop);
Control.FocusChange += Control_FocusChange;
if (element.IsBorderVisible)
{
GradientDrawable gd = new GradientDrawable();
gd.SetShape(ShapeType.Rectangle);
gd.SetCornerRadius(3);
gd.Setstroke(3,Android.Graphics.Color.Rgb(188,196,205));
Control.SetBackground(gd);
}
Control.CustomSelectionActionModeCallback = new Callback();
Control.SetPadding(10,5,10,5);
Control.LongClickable = false;
}
protected override void OnElementPropertyChanged(object sender,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender,e);
if (e.PropertyName.Equals(nameof(element.Image)))
{
var editText = this.Control;
if (!string.IsNullOrEmpty(element.Image))
{
switch (element.ImageAlignment)
{
case ImageAlignment.Left:
editText.SetCompoundDrawablesWithIntrinsicBounds(
GetDrawable(element.Image),null);
break;
case ImageAlignment.Right:
editText.SetCompoundDrawablesWithIntrinsicBounds(null,null);
break;
}
}
editText.CompoundDrawablePadding = 25;
}
}
private void Control_FocusChange(object sender,FocusChangeEventArgs e)
{
if (Control.HasFocus)
{
if (element.IsBorderVisible)
{
GradientDrawable gd = new GradientDrawable();
gd.Setstroke(3,Android.Graphics.Color.Rgb(29,74,147));
Control.SetBackground(gd);
}
}
else
{
if (element.IsBorderVisible)
{
GradientDrawable gd = new GradientDrawable();
gd.Setstroke(3,205));
Control.SetBackground(gd);
}
}
}
private Drawable GetDrawable(string imageEntryImage)
{
int resID = Resources.GetIdentifier(imageEntryImage,"drawable",this.Context.PackageName);
var drawable = ContextCompat.GetDrawable(this.Context,resID);
var bitmap = ((BitmapDrawable)drawable).Bitmap;
Drawable d = new BitmapDrawable(Resources,Bitmap.CreateScaledBitmap(bitmap,element.ImageHeight,element.ImageWidth,true));
return d;
}
}
请有人帮我解决这个问题。我已经尝试了很多方法来解决这个问题,但还没有找到任何解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。