summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradrianknight89 <adrianknight89@outlook.com>2017-05-16 16:24:43 -0700
committerRui Marinho <me@ruimarinho.net>2017-05-17 00:24:43 +0100
commit492e179d7f714696787e6296147910ff6025a40b (patch)
tree43f41cd12c7ca64f64986a9bd4108b2b1389923f
parentb3f6d80a1b0acdbd335c810b835e4597d94269b5 (diff)
downloadxamarin-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.cs16
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/Platform.cs7
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)));
}