1

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

我做过这样的事情:-

命名空间 Project.Mobile.Droid

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

    }
}

我该怎么做呢?我是 Xamarin.Forms 的新手,所以如果有人在这方面帮助我,那将是一个很大的帮助。

4

1 回答 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();
                }
            };
        }
    }
}
于 2015-04-16T13:22:43.463 回答