diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1329.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1329.cs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1329.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1329.cs new file mode 100644 index 00000000..b9d133e1 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1329.cs @@ -0,0 +1,46 @@ + +using System; + +using Xamarin.Forms.CustomAttributes; + +namespace Xamarin.Forms.Controls +{ + [Preserve (AllMembers=true)] + [Issue (IssueTracker.Github, 1329, "Losing root page with rapidly pushing and popping", PlatformAffected.Android)] + public class Issue1329 : NavigationPage + { + public Issue1329 () : base (GetPage ("root page")) + { + var navigation = new NavigationPage (GetPage ("root page")); + var pageNum = 0; + + MessagingCenter.Subscribe<Button> ( + navigation, + "PushPage", + (sender) => navigation.PushAsync (GetPage ("Page #: " + ++pageNum)) + ); + + navigation.Popped += (sender, e) => { + pageNum -= 1; + }; + } + + public static Page GetPage (string name) { + + var button = new Button { + Text = name + }; + + button.Clicked += (sender, e) => MessagingCenter.Send<Button> ((Button)sender, "PushPage"); + + var page = new ContentPage { + Content = button + }; + + return page; + } + + } + +} + |