【问题标题】:Xamarin Forms: Freeze screen on navigation back buttonXamarin Forms:导航返回按钮上的冻结屏幕
【发布时间】:2018-11-08 01:41:59
【问题描述】:

我在应用程序中导航时遇到问题。几次之后,当我同时使用硬件和操作栏按钮返回我的 MainPage 时,我无法再导航,有时屏幕甚至冻结,我搜索了很多并阅读了可能是主页背景中的某个地方,我的情况是页面作为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 上。

【问题讨论】:

标签: c# xamarin xamarin.forms prism


【解决方案1】:

我只是在我的 ViewBase.cs 上实现“IDestructable”并将“GC.Collect()”放在调用基本方法之前,它会停止中断。

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2020-09-22
    相关资源
    最近更新 更多