From 33fe1c8cc135cd21f4ef1443177bdda146a1c6d0 Mon Sep 17 00:00:00 2001 From: Tsanie Lily Date: Sat, 9 May 2020 13:11:08 +0800 Subject: [PATCH] UI issues when orientation changed. --- Pixiview.iOS/Pixiview.iOS.csproj | 1 + Pixiview/Illust/IllustCollectionPage.cs | 25 ++++--------------------- Pixiview/Illust/RankingPage.xaml.cs | 20 +++++--------------- Pixiview/Illust/RecommendsPage.xaml.cs | 20 +++++--------------- 4 files changed, 15 insertions(+), 51 deletions(-) diff --git a/Pixiview.iOS/Pixiview.iOS.csproj b/Pixiview.iOS/Pixiview.iOS.csproj index 58f3b6b..872ce70 100644 --- a/Pixiview.iOS/Pixiview.iOS.csproj +++ b/Pixiview.iOS/Pixiview.iOS.csproj @@ -61,6 +61,7 @@ ARM64 iPhone Developer Entitlements.plist + true diff --git a/Pixiview/Illust/IllustCollectionPage.cs b/Pixiview/Illust/IllustCollectionPage.cs index 4085584..09453ed 100644 --- a/Pixiview/Illust/IllustCollectionPage.cs +++ b/Pixiview/Illust/IllustCollectionPage.cs @@ -58,8 +58,6 @@ namespace Pixiview.Illust public IllustCollection IllustCollection { get; set; } protected virtual bool IsFavoriteVisible => true; - protected Thickness totalBarOffset; - protected Thickness navigationBarOffset; protected bool loaded; private T illustData; @@ -123,30 +121,15 @@ namespace Pixiview.Illust } } - public override void OnOrientationChanged(Orientation orientation) + protected override void OnSizeAllocated(double width, double height) { - int columns; - switch (orientation) - { - case Orientation.Portrait: - columns = 2; - break; - case Orientation.PortraitUpsideDown: - columns = isPhone ? 4 : 2; - break; - case Orientation.Unknown: - case Orientation.LandscapeLeft: - case Orientation.LandscapeRight: - default: - columns = 4; - break; - } + base.OnSizeAllocated(width, height); + var columns = width > height ? 4 : 2; if (Columns != columns) { - App.DebugPrint($"change columns to {columns}"); Columns = columns; + App.DebugPrint($"change columns to {columns}"); } - base.OnOrientationChanged(orientation); } #endregion diff --git a/Pixiview/Illust/RankingPage.xaml.cs b/Pixiview/Illust/RankingPage.xaml.cs index fb3d9fa..cc2b849 100644 --- a/Pixiview/Illust/RankingPage.xaml.cs +++ b/Pixiview/Illust/RankingPage.xaml.cs @@ -21,39 +21,29 @@ namespace Pixiview.Illust public RankingPage() { - totalBarOffset = new Thickness(0, AppShell.TotalBarOffset.Top + 50, 0, 0); - navigationBarOffset = new Thickness(0, AppShell.NavigationBarOffset.Top + 50, 0, 0); - Resources.Add("cardView", GetCardViewTemplate()); InitializeComponent(); } public override void OnOrientationChanged(Orientation orientation) { - int columns; switch (orientation) { case Orientation.Portrait: - columns = 2; - PageTopMargin = totalBarOffset; + PageTopMargin = new Thickness(0, AppShell.TotalBarOffset.Top + 50, 0, 0); break; case Orientation.PortraitUpsideDown: - columns = isPhone ? 4 : 2; - PageTopMargin = isPhone ? navigationBarOffset : totalBarOffset; + PageTopMargin = isPhone ? + new Thickness(0, AppShell.NavigationBarOffset.Top + 50, 0, 0) : + new Thickness(0, AppShell.TotalBarOffset.Top + 50, 0, 0); break; case Orientation.Unknown: case Orientation.LandscapeLeft: case Orientation.LandscapeRight: default: - columns = 4; - PageTopMargin = navigationBarOffset; + PageTopMargin = new Thickness(0, AppShell.NavigationBarOffset.Top + 50, 0, 0); break; } - if (Columns != columns) - { - App.DebugPrint($"ranking page, change columns to {columns}"); - Columns = columns; - } } protected override IEnumerable DoGetIllustList(IllustData data, ICommand command) diff --git a/Pixiview/Illust/RecommendsPage.xaml.cs b/Pixiview/Illust/RecommendsPage.xaml.cs index cff8e96..c45ad67 100644 --- a/Pixiview/Illust/RecommendsPage.xaml.cs +++ b/Pixiview/Illust/RecommendsPage.xaml.cs @@ -28,39 +28,29 @@ namespace Pixiview.Illust public RecommendsPage() { - totalBarOffset = new Thickness(0, AppShell.TotalBarOffset.Top + 40, 0, 0); - navigationBarOffset = new Thickness(0, AppShell.NavigationBarOffset.Top + 40, 0, 0); - Resources.Add("cardView", GetCardViewTemplate()); InitializeComponent(); } public override void OnOrientationChanged(Orientation orientation) { - int columns; switch (orientation) { case Orientation.Portrait: - columns = 2; - PageTopMargin = totalBarOffset; + PageTopMargin = new Thickness(0, AppShell.TotalBarOffset.Top + 40, 0, 0); break; case Orientation.PortraitUpsideDown: - columns = isPhone ? 4 : 2; - PageTopMargin = isPhone ? navigationBarOffset : totalBarOffset; + PageTopMargin = isPhone ? + new Thickness(0, AppShell.NavigationBarOffset.Top + 40, 0, 0) : + new Thickness(0, AppShell.TotalBarOffset.Top + 40, 0, 0); break; case Orientation.Unknown: case Orientation.LandscapeLeft: case Orientation.LandscapeRight: default: - columns = 4; - PageTopMargin = navigationBarOffset; + PageTopMargin = new Thickness(0, AppShell.NavigationBarOffset.Top + 40, 0, 0); break; } - if (Columns != columns) - { - App.DebugPrint($"ranking page, change columns to {columns}"); - Columns = columns; - } } protected override IEnumerable DoGetIllustList(IllustData data, ICommand command)