首页 文章

覆盖自定义渲染器Xamarin中的OnDisappearing . 形式

提问于
浏览
1

我想在Xamarin.Forms的Android项目中调用onDisappearing()上的base.Dispose() .

我做过这样的事情: -

命名空间Project.Mobile.Droid

{
    [assembly: ExportRenderer(typeof(ItemListPage), typeof(DisposeRenderer))]
    class DisposeRenderer : ViewRenderer
    {
          public DisposeRenderer() { }

    }
}

我怎么能继续这个呢?我是Xamarin.Forms的新手,所以如果有人帮助我,这将是一个很大的帮助 .

1 回答

  • 0

    只要您的ItemListPage实现IDisposable,您可以尝试以下方法: -

    using System;
    using DisposableControlSample;
    using DisposableControlSample.Droid;
    using Xamarin.Forms;
    using Xamarin.Forms.Platform.Android;
    
    [assembly: ExportRenderer(typeof(DisposablePage), typeof(DisposablePageRenderer))]
    namespace DisposableControlSample.Droid
    {
        public class DisposablePageRenderer : PageRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
            {
                base.OnElementChanged(e);
    
                e.NewElement.Disappearing += (sender, args) =>
                {
                    var disposablePage = sender as IDisposable;
    
                    if (disposablePage != null)
                    {
                        disposablePage.Dispose();
                    }
                };
            }
        }
    }
    

相关问题