我在应用程序中导航时遇到问题。几次无法导航后,有时甚至同时使用硬件和操作栏按钮返回到主页时,有时屏幕甚至冻结,我进行了很多搜索并读取了可能在主页背景中显示的内容,我的情况是该页面作为CustomRenderer,但应该不会有问题,因为它仍然可以浏览几次,所以我尝试从背景中删除渐变并保留白色(默认),直到导航更多,但继续冻结该应用程序或只是不再浏览。
值得注册的是,在进行导航的命令中插入一个断点,在它仍然通过导航行的100%的时间内,我不知道会发生什么。
使用的框架: PRISM
App.xaml.cs:
protected override async void OnInitialized()
{
InitializeComponent();
await NavigationService.NavigateAsync("NavigationPage/" + nameof(DashboardPage));
}
渐变渲染器示例:
public class GradientPageRenderer : PageRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.OldElement == null) // perform initial setup
{
var page = e.NewElement as ContentPage;
var gradientLayer = new CAGradientLayer();
gradientLayer.Frame = View.Bounds;
gradientLayer.Colors = new CGColor[]
{
((Color)App.Current.Resources["DefaultGreenColor"]).ToCGColor(),
((Color)App.Current.Resources["DefaultPurpleColor"]).ToCGColor()
};
View.Layer.InsertSublayer(gradientLayer, 0);
}
}
}
问题发生在iOS和Android。
答案 0 :(得分:0)
我只需在ViewBase.cs上实现“ IDestructable”,然后将“ GC.Collect()”放在调用基方法之前,它就会停止运行。