关于 c#:xamarin.forms 中的页面生命周期事件
Page lifecycle events in xamarin.forms
我刚刚开发了我的第一个 xamarin.forms 应用程序。我对 xamarin.forms 感到很兴奋,但我错过了一些活动。
xamarin.forms ContentPage 中是否有任何页面生命周期事件?
我知道这两个:
|
protected override void OnAppearing()
{ } protected override void OnDisappearing() |
但是 OnAppearing() 事件只触发一次。在 Android 上,当我按下开始按钮并返回我的应用程序时,此事件不会再次触发。
是否有解决方法(如 WindowsPhone 页面中的 OnNavigatedTo)?
谢谢。
因此,当您的页面出现时会触发
我认为你在谈论的是如果你让你的应用程序进入睡眠状态并导航回它,
您正在寻找的是
|
protected override void OnStart()
{ Debug.WriteLine ("OnStart"); } protected override void OnSleep() { Debug.WriteLine ("OnSleep"); } protected override void OnResume() { Debug.WriteLine ("OnResume"); } |
然后您可以使用
该 Xamarin 文档包括必须对旧 Xamarin 项目进行的更改才能访问这些事件。例如您的共享库中的
相关讨论
- 我以为我可以使用其他一些事件..但现在我可以解决问题了。感谢您的快速答复。
- 何时调用 OnSleep?
您还可以使用 Xamarin 的 MessagingCenter 来执行任意事件协调:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/messaging-center/
我对同一件事感到沮丧:在 Xamarin.Forms 中没有一致的视图生命周期事件。但是您可以通过使用 MessagingCenter 来解决其中的一些限制,它只是一个简单的发布/订阅消息传递工具。
相关讨论
- 我之前使用过 MessagingCenter,但我从来没有想过将它用于此目的。很好的解决方法,谢谢。
- 我还遇到了 Xamarin Android 和 UWP 的不一致事件周期。我有一个第一个标签页,它使用父页的 CurrentPage 来触发第二个标签页的 Appearing 事件。在 Android 上,第一个选项卡始终可以触发 Appearing 事件,但是,在 UWP 上,并非总是如此。不一致的问题由 MessagingCenter 解决。谢谢!
-
谢谢,这个答案帮助我解决了页面显示时缺少
OnAppearing() 方法调用的问题。我不知道为什么 Xamarin 会这样,但现在,我可以用MessaggingCenter 解决问题。