You need to enable JavaScript to run this app. Xamarin安卓端左对齐Entry的android:autofilledHighlight透明设置失效问题
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin安卓端左对齐Entry的android:autofilledHighlight透明设置失效问题

问题原因

该问题不属于配置遗漏,是Android 8.0~11版本的原生系统渲染Bug,Xamarin.Forms作为原生控件的封装层会同步触发该问题:

  • 系统绘制自动填充高亮时,对左对齐/默认对齐的输入框会硬编码使用浅黄色高亮色,不会读取主题中配置的android:autofilledHighlight属性
  • 居中对齐的输入框因文字绘制区域的计算逻辑不同,会走自定义高亮读取逻辑,所以你配置的透明属性可以正常生效
解决方案

方案1:全局自定义Entry渲染器(推荐)

在Android平台项目中添加自定义渲染器,强制所有Entry的自动填充高亮为透明,配置优先级高于全局主题:

[assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))]
namespace 你的项目实际命名空间.Droid.Renderers
{
    public class CustomEntryRenderer : EntryRenderer
    {
        public CustomEntryRenderer(Context context) : base(context) { }

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                Control.AutofilledHighlight = new ColorDrawable(Android.Graphics.Color.Transparent);
            }
        }
    }
}

方案2:单控件单独配置

如果不需要全局生效,可直接在XAML中针对左对齐的Entry添加平台特定配置:

<Entry x:Name="ConfirmEmail">
    <Entry.Android>
        <OnPlatform x:TypeArguments="AndroidSpecific.Entry" AutofilledHighlight="Transparent"/>
    </Entry.Android>
</Entry>

内容的提问来源于stack exchange,提问作者Dan Scott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 05:24:03