@@ -3,6 +3,7 @@
 using Microsoft.Maui;
 using Microsoft.Maui.Controls;
 using Microsoft.Maui.Controls.Handlers.Compatibility;
+using Microsoft.Maui.Graphics;
 using Microsoft.Maui.Platform;
 using UIKit;
 using Xunit;
@@ -59,28 +60,26 @@ public async Task FlyoutPageTakesIntoAccountSafeAreaByDefault()
 		[InlineData(true)]
 		public async Task DetailsViewPopOverLayoutIsCorrectForIdiom(bool isRtl)
 		{
-			if (isRtl && System.OperatingSystem.IsIOSVersionAtLeast(17))
-			{
-				//skip till we figure the 1 pixel issue 
-				return;
-			}
 			SetupBuilder();
 			var flyoutLabel = new Label() { Text = "Content" };
+			var flyoutLayout = new VerticalStackLayout() { BackgroundColor = Colors.Blue };
+			flyoutLayout.Add(flyoutLabel);
+
 			var flyoutPage = await InvokeOnMainThreadAsync(() => new FlyoutPage()
 			{
 				FlyoutLayoutBehavior = FlyoutLayoutBehavior.Popover,
 				IsPresented = true,
 				Detail = new ContentPage()
 				{
 					Title = "Detail",
-					Content = new Label()
+					Content = new Label() { Text = "Detail", BackgroundColor = Colors.Red }
 				},
 				Flyout = new ContentPage()
 				{
 					Title = "Flyout",
-					Content = flyoutLabel
+					Content = flyoutLayout
 				},
-				FlowDirection = (isRtl) ? FlowDirection.RightToLeft : FlowDirection.LeftToRight
+				FlowDirection = isRtl ? FlowDirection.RightToLeft : FlowDirection.LeftToRight
 			});
 
 			await CreateHandlerAndAddToWindow<FlyoutViewHandler>(flyoutPage, async (handler) =>
@@ -109,19 +108,7 @@ public async Task DetailsViewPopOverLayoutIsCorrectForIdiom(bool isRtl)
 				else
 					Assert.Equal(0, flyoutBounds.X);
 
-				flyoutPage.IsPresented = false;
-
-				await Task.Yield();
-
-				bool flyoutHasExpectedBounds()
-				{
-					var flyoutBounds = flyoutPage.Flyout.GetBoundingBox();
-					return
-						-flyoutBounds.Width == flyoutBounds.X || //ltr
-						screenBounds.Width == flyoutBounds.X;    //rtl
-				}
-
-				await AssertEventually(flyoutHasExpectedBounds);
+				await CloseFlyout(flyoutPage);
 
 				var detailBoundsNotPresented = flyoutPage.Detail.GetBoundingBox();
 				var flyoutBoundsNotPresented = flyoutPage.Flyout.GetBoundingBox();
@@ -142,8 +129,36 @@ bool flyoutHasExpectedBounds()
 			});
 		}
 
-
 		UIView FindPlatformFlyoutView(UIView uiView) =>
 			uiView.FindResponder<PhoneFlyoutPageRenderer>()?.View;
+
+		async Task CloseFlyout(FlyoutPage flyoutPage)
+		{
+			flyoutPage.IsPresented = false;
+
+			await Task.Yield();
+
+			bool flyoutHasExpectedBounds()
+			{
+				if (IsPad)
+				{
+					// When used on an iPad the flyout overlaps the details
+					var flyoutBounds = flyoutPage.Flyout.GetBoundingBox();
+					var screenBounds = flyoutPage.GetBoundingBox();
+					return
+						-flyoutBounds.Width == flyoutBounds.X || //ltr
+						screenBounds.Width == flyoutBounds.X;    //rtl
+				}
+				else
+				{
+					// When used on an iPhone the details page just covers the flyout
+					// When the flyout opens the details page is moved to the right
+					var detailsBound = flyoutPage.Detail.GetBoundingBox();
+					return 0 == detailsBound.X;
+				}
+			}
+
+			await AssertEventually(flyoutHasExpectedBounds);
+		}
 	}
 }
\ No newline at end of file