【问题标题】:Overriding OnDisappearing in custom Renderer Xamarin. Forms在自定义渲染器 Xamarin 中覆盖 OnDisappearing。形式
【发布时间】:2015-06-14 09:55:16
【问题描述】:

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

我做过这样的事情:-

命名空间 Project.Mobile.Droid

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

    }
}

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

【问题讨论】:

  • 它是否接受类顶部的 ExportRenderer 属性?我认为它应该在命名空间之上。

标签: xamarin.forms custom-renderer


【解决方案1】:

只要您的 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();
                }
            };
        }
    }
}

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    相关资源
    最近更新 更多