如何修复Android Xamarin.Forms中的渲染器警告

时间:2017-12-27 07:26:59

标签: xamarin xamarin.forms xamarin.android

  

警告CS0618:' PickerRenderer.PickerRenderer()'已经过时了:'这个   构造函数从版本2.5开始已过时。请用   改为PickerRenderer(上下文)。

此警告不仅在选择器渲染器中,所有渲染器(Entry,DatePicker,StackLayout Renderer)都显示此警告。我的Picker自定义渲染器就是这样,

 public class BorderlessPickerRenderer : PickerRenderer
    {        
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            var picker = e.NewElement;
            if (Control != null)
            {                             
                Control.Background = null;

                Control.SetTextSize(Android.Util.ComplexUnitType.Pt, 8);

                Control.SetTextColor(Android.Graphics.Color.ParseColor("#141414"));
            }
        }
    }

2 个答案:

答案 0 :(得分:3)

.ctor(2.5+)基于Android的渲染器有一个新的Xamarin.Forms,它接受​​基于Android的上下文。旧的无参数构造函数已被标记为已过时,以支持本机嵌入。

将此添加到渲染器:

public BorderlessPickerRenderer(Context context) : base(context)
{
}

答案 1 :(得分:1)

根据2.5.0 release notes,您应该在下一步添加构造函数:

public BorderlessPickerRenderer(Context context) : base(context) {}

此外,关于此主题的官方Xamarin论坛还有dedicated thread