diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39908.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39908.cs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39908.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39908.cs new file mode 100644 index 00000000..d9a620e8 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39908.cs @@ -0,0 +1,72 @@ +using System; + +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 39908, " Back button hit quickly results in jumbled pages")] + public class Bugzilla39908 : TestContentPage // or TestMasterDetailPage, etc ... + { + protected override void Init() + { + var label = "Root Page"; + + Title = label; + Content = new StackLayout + { + VerticalOptions = LayoutOptions.Center, + Children = { + new Label { + HorizontalTextAlignment = TextAlignment.Center, + Text = label + }, + NewButton () + } + }; + } + + + + private Button NewButton() + { + var newPageButton = new Button(); + newPageButton.Text = "Another one"; + newPageButton.Clicked += OnNewPage; + + return newPageButton; + } + + private ContentPage NewPage() + { + var label = Navigation != null ? "Page " + (Navigation.NavigationStack.Count - 1) : "Root Page"; + + return new ContentPage + { + Title = label, + Content = new StackLayout + { + VerticalOptions = LayoutOptions.Center, + Children = { + new Label { + HorizontalTextAlignment = TextAlignment.Center, + Text = label + }, + NewButton () + } + } + }; + } + + private async void OnNewPage(object sender, EventArgs e) + { + await Navigation.PushAsync(NewPage()); + } + } +} |