You need to enable JavaScript to run this app. Xamarin Forms应用Entry控件输入凭证时红米Note7 Pro MIUI重启问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms应用Entry控件输入凭证时红米Note7 Pro MIUI重启问题求助

问题排查与修复思路
  • 优先验证MIUI系统特定兼容点
    当前代码中设置了Control.LongClickable = false和自定义CustomSelectionActionModeCallback,小米Note7 Pro适配的MIUI 11/12旧版本在输入敏感凭证类内容时,会触发系统级文本安全校验逻辑,自定义选择回调和禁用长按的配置会和系统校验逻辑冲突,导致系统服务崩溃重启。
    临时验证方案:注释以下两行代码测试问题是否复现:
    Control.CustomSelectionActionModeCallback = new Callback();
    Control.LongClickable = false;
    
  • 修正Drawable缩放参数错误
    当前GetDrawable方法中缩放Bitmap时宽高参数写反:Bitmap.CreateScaledBitmap(bitmap, element.ImageHeight, element.ImageWidth, true),如果ImageHeight和ImageWidth数值差异较大,生成的异常尺寸Drawable会和MIUI输入框渲染逻辑冲突,触发底层渲染崩溃。修正代码为:
    Drawable d = new BitmapDrawable(Resources, Bitmap.CreateScaledBitmap(bitmap, element.ImageWidth, element.ImageHeight, true));
    
  • 关闭MIUI安全键盘关联触发逻辑
    小米Note7 Pro的MIUI系统识别到输入账号、密码类内容时会自动唤起系统安全键盘,若自定义Entry的键盘类型设为Email但实际用于输入密码类凭证,会触发系统输入类型校验冲突。可在Renderer中添加代码禁用系统自动填充和安全键盘关联:
    Control.ImportantForAutofill = ImportantForAutofill.No;
    if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
    {
        Control.SetAutofillHints((string[])null);
    }
    
  • 优化焦点变化时的背景重绘逻辑
    当前Control_FocusChange回调中每次都新建GradientDrawable设置背景,部分MIUI版本在输入法弹出时会频繁触发焦点回调,短时间多次重设背景可能引发渲染管线崩溃。可优化为全局仅初始化两次GradientDrawable,焦点变化时直接切换已实例化的对象,避免频繁创建对象。

内容的提问来源于stack exchange,提问作者Tusshar Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 10:15:03