我正在尝试解决使用自定义渲染器的开源Xamarin.Forms控件中的一个缺点。
问题是我只能在自定义渲染器运行后 上设置控件的某些属性。我只是不确定那会是什么时候。控件或页面中是否有任何生命周期事件表明所有自定义渲染器均已执行?
谢谢!
答案 0 :(得分:1)
xxxRenderer类公开 OnElementChanged 方法,该方法在创建Xamarin.Forms控件以呈现相应的本机控件时调用。此方法采用包含ElementChangedEventArgs
和OldElement
属性的NewElement
参数。这些属性表示渲染器附加到的Xamarin.Forms元素,以及渲染器附加到的Xamarin.Forms元素。
protected override void OnElementChanged (ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged (e);
if (Control != null) {
// custom renderers have executed here
}
}
对基类的 OnElementChanged 方法的调用会实例化本机控件(或视图),并引用分配给渲染器的Control属性的控件。