xamarin.forms.shell 框架中页面上视觉元素的生命周期

问题描述

当您导航到另一个页面时,内容页面上的视觉元素会发生什么变化,在 shell 应用程序中?

特定页面似乎还活着,从构造函数判断只在第一次显示时被调用而不是在随后再次导航回页面时,但似乎在导航时刷新了内容页面上的一些/所有视觉元素返回页面

这是我在页面上放置 forms.map 或 syncfusion.sfmap 并从页面导航然后返回时看到的具体内容。地图显然在重新加载时重置为初始值,因此它们显然被杀死并重新创建。为地图制作自定义渲染器显示 OnElementChanged 在重新加载时被调用,这也表明它不会在页面重新加载时“随时可用”。

似乎封装了更深层次控件的表单类确实存在,但它们与较低级别的控件断开连接,并在再次可见时重新加载它们?我对移动开发有点陌生,可能会也可能不会错过这里的全部内容...

真正的问题是我是否可以避免这种行为。我有一个 shell 应用程序,其中包含包含地图的各种页面。这些地图填充有各种图形对象,并且正在平移和缩放,因此在短暂离开页面时重置它们真的很痛苦。有没有办法避免这种情况,所以当页面再次显示时它们会很快恢复正常?

解决方法

我们已经分析了查询,我们想告知不仅地图控件,简单的 ContentPage 也像这样。它会在返回导航时破坏旧页面并重新创建页面视图。