diff options
author | adrianknight89 <adrianknight89@outlook.com> | 2017-05-16 16:24:43 -0700 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-05-17 00:24:43 +0100 |
commit | 492e179d7f714696787e6296147910ff6025a40b (patch) | |
tree | 43f41cd12c7ca64f64986a9bd4108b2b1389923f | |
parent | b3f6d80a1b0acdbd335c810b835e4597d94269b5 (diff) | |
download | xamarin-forms-492e179d7f714696787e6296147910ff6025a40b.tar.gz xamarin-forms-492e179d7f714696787e6296147910ff6025a40b.tar.bz2 xamarin-forms-492e179d7f714696787e6296147910ff6025a40b.zip |
Do not layout page in OnWindowAttributesChanged on fullscreen flag change (#916)
* remove OnWindowAttributesChanged
* add back OnWindowAttributesChanged
* remove flag
* LayoutRootPage can be private again
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs | 16 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/Platform.cs | 7 |
2 files changed, 6 insertions, 17 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs b/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs index e0bac30e..91efaa1d 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs @@ -44,7 +44,7 @@ namespace Xamarin.Forms.Platform.Android AndroidApplicationLifecycleState _previousState; - bool _renderersAdded, _isFullScreen; + bool _renderersAdded; // Override this if you want to handle the default Android behavior of restoring fragments on an application restart protected virtual bool AllowFragmentRestore => false; @@ -426,29 +426,17 @@ namespace Xamarin.Forms.Platform.Android if (Xamarin.Forms.Application.Current == null || Xamarin.Forms.Application.Current.MainPage == null) return; + // sync between Window flag and Forms property if (@params.Flags.HasFlag(WindowManagerFlags.Fullscreen)) { if (Forms.TitleBarVisibility != AndroidTitleBarVisibility.Never) Forms.TitleBarVisibility = AndroidTitleBarVisibility.Never; - - if (_isFullScreen) - return; } else { if (Forms.TitleBarVisibility != AndroidTitleBarVisibility.Default) Forms.TitleBarVisibility = AndroidTitleBarVisibility.Default; - - if (!_isFullScreen) - return; } - - _isFullScreen = !_isFullScreen; - - var displayMetrics = Resources.DisplayMetrics; - var width = displayMetrics.WidthPixels; - var height = displayMetrics.HeightPixels; - AppCompat.Platform.LayoutRootPage(this, Xamarin.Forms.Application.Current.MainPage, width, height); } void UpdateProgressBarVisibility(bool isBusy) diff --git a/Xamarin.Forms.Platform.Android/AppCompat/Platform.cs b/Xamarin.Forms.Platform.Android/AppCompat/Platform.cs index be54ea0a..03b23123 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/Platform.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/Platform.cs @@ -196,7 +196,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat { if (changed) { - LayoutRootPage((FormsAppCompatActivity)_context, Page, r - l, b - t); + LayoutRootPage(Page, r - l, b - t); } Android.Platform.GetRenderer(Page).UpdateLayout(); @@ -269,7 +269,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat Android.Platform.SetRenderer(page, renderView); if (layout) - LayoutRootPage((FormsAppCompatActivity)_context, page, _renderer.Width, _renderer.Height); + LayoutRootPage(page, _renderer.Width, _renderer.Height); _renderer.AddView(renderView.View); } @@ -285,8 +285,9 @@ namespace Xamarin.Forms.Platform.Android.AppCompat return handled; } - internal static void LayoutRootPage(FormsAppCompatActivity activity, Page page, int width, int height) + void LayoutRootPage(Page page, int width, int height) { + var activity = (FormsAppCompatActivity)_context; page.Layout(new Rectangle(0, 0, activity.FromPixels(width), activity.FromPixels(height))); } |