You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms Android自定义Entry渲染器开启滚动后不显示滚动条如何解决

问题修复方案

你漏了Android原生EditText(对应Xamarin Editor的原生控件)滚动功能的核心配置,仅开启滚动条显示不生效,按以下步骤修改即可:

需补充的配置项

  • 首先要给原生控件设置滚动处理方法,这是Android EditText支持滚动的必要前提:this.Control.MovementMethod = Android.Text.Method.ScrollingMovementMethod.Instance;
  • 如果需要滚动条常驻不自动淡出,可添加配置:this.Control.ScrollbarFadingEnabled = false;
  • 可选配置:如果觉得滚动条太细不易观察,可指定滚动条宽度:this.Control.ScrollBarSize = Android.Util.TypedValue.ApplyDimension(Android.Util.ComplexUnitType.Dip, 4, Context.Resources.DisplayMetrics);

修改后的完整OnElementChanged方法代码

protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
    base.OnElementChanged(e);

    if (this.Control != null)
    {
        // 新增:开启滚动支持
        this.Control.MovementMethod = Android.Text.Method.ScrollingMovementMethod.Instance;
        this.Control.VerticalScrollBarEnabled = true;  
        // 新增:关闭滚动条自动隐藏(可选,按需添加)
        this.Control.ScrollbarFadingEnabled = false;
    }

    if (e.OldElement == null)
    {
        GradientDrawable gd = new GradientDrawable();
        gd.SetCornerRadius(5);
        gd.SetStroke(2, Constants.AppBlue.ToAndroid());
        this.Control.Background = gd;
        this.Control.ImeOptions = Android.Views.InputMethods.ImeAction.Done;
    }
}

额外注意事项

Xamarin.Forms端使用BorderedEditor时,需要给控件设置固定高度/最大高度,同时关闭自动高度调整,避免内容自适应控件高度导致无滚动场景:

<local:BorderedEditor 
    HeightRequest="120"
    AutoSize="Disabled"
    MaxLines="5"
    ...其他属性
/>

内容的提问来源于stack exchange,提问作者Samuel James

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:08