【发布时间】: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 上。
【问题讨论】:
-
if 条件应该是“e.NewElement != null”。另见Creating the Custom Renderer on each Platform
标签: c# xamarin xamarin.forms prism