From 91950566f73b802902222213e955206fe8471e5d Mon Sep 17 00:00:00 2001 From: Subhiksha Chandrasekaran Date: Sun, 28 Jun 2026 10:51:59 +0530 Subject: [PATCH 1/4] Fix : WebView inside SwipeView no longer responds to swipe gestures --- .../TestCases.HostApp/Issues/Issue36154.cs | 156 ++++++++++++++++++ .../Tests/Issues/Issue36154.cs | 63 +++++++ .../src/Platform/Android/MauiSwipeView.cs | 22 +++ src/Core/src/Platform/Android/MauiWebView.cs | 18 +- 4 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs create mode 100644 src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs new file mode 100644 index 000000000000..6b6fc6303f60 --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs @@ -0,0 +1,156 @@ +namespace Maui.Controls.Sample.Issues; + +[Issue(IssueTracker.Github, 36154, "WebView inside SwipeView no longer responds to swipe gestures on Android", PlatformAffected.Android)] +public class Issue36154 : ContentPage +{ + public Issue36154() + { + var directionLabel = new Label + { + AutomationId = "DirectionLabel", + Text = "Direction: — Offset: 0", + HorizontalOptions = LayoutOptions.Center, + Margin = new Thickness(4, 8), + FontSize = 13 + }; + + var resultLabel = new Label + { + AutomationId = "ResultLabel", + Text = "Swipe result will appear here", + HorizontalOptions = LayoutOptions.Center, + Margin = new Thickness(4, 0, 4, 12), + FontSize = 13, + TextColor = Colors.Gray + }; + + var webView = new WebView + { + AutomationId = "TheWebView", + HorizontalOptions = LayoutOptions.Fill, + VerticalOptions = LayoutOptions.Fill, + // Long scrollable page so vertical scroll can be verified + Source = new HtmlWebViewSource + { + Html = """ + + +

Issue 36154 – WebView scroll test

+

Scroll down to verify WebView vertical scrolling works inside SwipeView.

+

Then swipe left/right to reveal swipe items.

+

At the top edge, swipe down to reveal TopItems.

+

At the bottom edge, swipe up to reveal BottomItems.

+ """ + string.Concat(Enumerable.Range(1, 40).Select(i => + $"

Line {i}: Lorem ipsum dolor sit amet consectetur adipiscing elit.

")) + + "" + } + }; + + var swipeView = new SwipeView + { + AutomationId = "TheSwipeView", + Threshold = 80, + + LeftItems = new SwipeItems(new[] + { + new SwipeItem + { + AutomationId = "LeftItem", + Text = "◀ LEFT", + BackgroundColor = Colors.MediumSeaGreen, + Command = new Command(() => + { + resultLabel.Text = "✅ LEFT item invoked"; + Console.WriteLine("ISSUE36154: LEFT item invoked"); + }) + } + }) + { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, + + RightItems = new SwipeItems(new[] + { + new SwipeItem + { + AutomationId = "RightItem", + Text = "RIGHT ▶", + BackgroundColor = Colors.CornflowerBlue, + Command = new Command(() => + { + resultLabel.Text = "✅ RIGHT item invoked"; + Console.WriteLine("ISSUE36154: RIGHT item invoked"); + }) + } + }) + { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, + + TopItems = new SwipeItems(new[] + { + new SwipeItem + { + AutomationId = "TopItem", + Text = "▲ TOP", + BackgroundColor = Colors.Orchid, + Command = new Command(() => + { + resultLabel.Text = "✅ TOP item invoked"; + Console.WriteLine("ISSUE36154: TOP item invoked"); + }) + } + }) + { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, + + BottomItems = new SwipeItems(new[] + { + new SwipeItem + { + AutomationId = "BottomItem", + Text = "▼ BOTTOM", + BackgroundColor = Colors.Tomato, + Command = new Command(() => + { + resultLabel.Text = "✅ BOTTOM item invoked"; + Console.WriteLine("ISSUE36154: BOTTOM item invoked"); + }) + } + }) + { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, + + Content = webView + }; + + swipeView.SwipeStarted += (s, e) => + { + directionLabel.Text = $"Direction: {e.SwipeDirection} Offset: 0"; + Console.WriteLine($"ISSUE36154: SwipeStarted direction={e.SwipeDirection}"); + }; + + swipeView.SwipeChanging += (s, e) => + directionLabel.Text = $"Direction: {e.SwipeDirection} Offset: {e.Offset:F0}"; + + swipeView.SwipeEnded += (s, e) => + { + directionLabel.Text = $"Direction: {e.SwipeDirection} Open: {e.IsOpen}"; + Console.WriteLine($"ISSUE36154: SwipeEnded direction={e.SwipeDirection} isOpen={e.IsOpen}"); + }; + + Content = new Grid + { + RowDefinitions = Rows.Define(Auto, Star, Auto, Auto), + Children = + { + new Label + { + Text = "Swipe on WebView · scroll mid-page · swipe at edges", + HorizontalOptions = LayoutOptions.Center, + Margin = new Thickness(8), + FontSize = 13, + FontAttributes = FontAttributes.Bold + }.Row(0), + + swipeView.Row(1), + directionLabel.Row(2), + resultLabel.Row(3) + } + }; + } +} diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs new file mode 100644 index 000000000000..eac309a6c5ea --- /dev/null +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs @@ -0,0 +1,63 @@ +using NUnit.Framework; +using UITest.Appium; +using UITest.Core; + +namespace Microsoft.Maui.TestCases.Tests.Issues; + +public class Issue36154 : _IssuesUITest +{ + public Issue36154(TestDevice testDevice) : base(testDevice) + { + } + + public override string Issue => "WebView inside SwipeView no longer responds to swipe gestures on Android"; + + // Verify that swiping left on the WebView reveals the Right swipe items + [Test] + [Category(UITestCategories.SwipeView)] + public void SwipeLeftRevealsRightItems() + { + var rect = App.WaitForElement("TheWebView").GetRect(); + var centerX = rect.X + rect.Width / 2; + var centerY = rect.Y + rect.Height / 2; + + // Swipe left (finger moves left) → reveals RightItems + App.DragCoordinates(centerX, centerY, centerX - 200, centerY); + + App.WaitForElement("RightItem"); + } + + // Verify that swiping right on the WebView reveals the Left swipe items + [Test] + [Category(UITestCategories.SwipeView)] + public void SwipeRightRevealsLeftItems() + { + var rect = App.WaitForElement("TheWebView").GetRect(); + var centerX = rect.X + rect.Width / 2; + var centerY = rect.Y + rect.Height / 2; + + // Swipe right (finger moves right) → reveals LeftItems + App.DragCoordinates(centerX, centerY, centerX + 200, centerY); + + App.WaitForElement("LeftItem"); + } + + // Verify that the WebView can still scroll vertically inside the SwipeView + [Test] + [Category(UITestCategories.SwipeView)] + public void WebViewCanScrollVertically() + { + var rect = App.WaitForElement("TheWebView").GetRect(); + var centerX = rect.X + rect.Width / 2; + var startY = rect.Y + rect.Height * 3 / 4; + var endY = rect.Y + rect.Height / 4; + + // Scroll up (finger moves up) inside the WebView — should NOT trigger swipe items + App.DragCoordinates(centerX, startY, centerX, endY); + + // SwipeView should NOT have triggered — result label stays at default + var resultText = App.WaitForElement("ResultLabel").GetText(); + Assert.That(resultText, Is.EqualTo("Swipe result will appear here"), + "WebView vertical scroll should not trigger SwipeView items"); + } +} diff --git a/src/Core/src/Platform/Android/MauiSwipeView.cs b/src/Core/src/Platform/Android/MauiSwipeView.cs index 430d69179ef5..90a52db98b47 100644 --- a/src/Core/src/Platform/Android/MauiSwipeView.cs +++ b/src/Core/src/Platform/Android/MauiSwipeView.cs @@ -133,6 +133,15 @@ bool ShouldInterceptScrollChildrenTouch(SwipeDirection swipeDirection) if (_contentView is null || _initialPoint is null) return false; + // When the content view itself is a WebView, check scroll boundaries directly. + // The child-iteration loop below inspects internal Chromium sub-views via + // GetChildAt(0) whose dimensions are unreliable. CanScrollHorizontally/Vertically + // gives accurate boundary state, mirroring iOS's pan gesture direction logic. + if (_contentView is AWebView contentWebView) + { + return ShouldInterceptWebViewTouch(contentWebView, swipeDirection); + } + var viewGroup = _contentView as ViewGroup; if (viewGroup is not null) @@ -166,6 +175,19 @@ bool ShouldInterceptScrollChildrenTouch(SwipeDirection swipeDirection) return true; } + // Mirrors iOS's UIPanGestureRecognizer direction logic: only intercept when the WebView + // has reached its scroll boundary in the gesture direction, so the other direction + // (e.g. vertical scroll) passes through unimpeded — just like ShouldRecognizeSimultaneously. + static bool ShouldInterceptWebViewTouch(AWebView webView, SwipeDirection swipeDirection) => + swipeDirection switch + { + SwipeDirection.Right => !webView.CanScrollHorizontally(-1), // at left edge + SwipeDirection.Left => !webView.CanScrollHorizontally(1), // at right edge + SwipeDirection.Down => !webView.CanScrollVertically(-1), // at top + SwipeDirection.Up => !webView.CanScrollVertically(1), // at bottom + _ => true, + }; + static bool ShouldInterceptScrollChildrenTouch(ViewGroup scrollView, bool isHorizontal) { AView? scrollViewContent = scrollView.GetChildAt(0); diff --git a/src/Core/src/Platform/Android/MauiWebView.cs b/src/Core/src/Platform/Android/MauiWebView.cs index 2d571d50030a..20b7258a0d89 100644 --- a/src/Core/src/Platform/Android/MauiWebView.cs +++ b/src/Core/src/Platform/Android/MauiWebView.cs @@ -12,6 +12,7 @@ public class MauiWebView : WebView, IWebViewDelegate readonly WebViewHandler _handler; readonly Rect _clipRect; + bool _hasSwipeViewParent; public MauiWebView(WebViewHandler handler, Context context) : base(context) { @@ -36,6 +37,13 @@ protected override void OnAttachedToWindow() // Re-evaluate ClipBounds when re-parented (e.g., wrapped in WrapperView for shadow) UpdateClipBounds(Width, Height); + + // Cache whether this WebView lives inside a MauiSwipeView. When it does, we must + // not call RequestDisallowInterceptTouchEvent(true) — doing so sets + // FLAG_DISALLOW_INTERCEPT on the SwipeView, which causes Android to skip its + // OnInterceptTouchEvent for Move events and prevents swipe gesture detection + // (issue #36154). Cached here rather than on every touch event for performance. + _hasSwipeViewParent = ((View)this).GetParentOfType() != null; } void UpdateClipBounds(int width, int height) @@ -74,7 +82,15 @@ public override bool OnTouchEvent(MotionEvent? e) { case MotionEventActions.Down: case MotionEventActions.Move: - Parent?.RequestDisallowInterceptTouchEvent(true); + // Do not request disallow intercept when inside a SwipeView — that would set + // FLAG_DISALLOW_INTERCEPT on the SwipeView and prevent it from detecting + // horizontal swipe gestures via OnInterceptTouchEvent (issue #36154). + // For all other containers (e.g. ScrollView), claim touch ownership normally + // so they don't steal scroll events from the WebView (PR #33133). + if (!_hasSwipeViewParent) + { + Parent?.RequestDisallowInterceptTouchEvent(true); + } break; case MotionEventActions.Up: From d0ac8ca771a0b17c721c9a7b07e802ebef626a18 Mon Sep 17 00:00:00 2001 From: Subhiksha Chandrasekaran Date: Mon, 29 Jun 2026 11:59:42 +0530 Subject: [PATCH 2/4] test sample changes --- .../TestCases.HostApp/Issues/Issue36154.cs | 48 ++++--------------- .../Tests/Issues/Issue36154.cs | 40 ++-------------- .../src/Platform/Android/MauiSwipeView.cs | 8 +--- src/Core/src/Platform/Android/MauiWebView.cs | 7 +-- 4 files changed, 14 insertions(+), 89 deletions(-) diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs index 6b6fc6303f60..6d389e571fa8 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue36154.cs @@ -60,8 +60,7 @@ public Issue36154() BackgroundColor = Colors.MediumSeaGreen, Command = new Command(() => { - resultLabel.Text = "✅ LEFT item invoked"; - Console.WriteLine("ISSUE36154: LEFT item invoked"); + resultLabel.Text = "LEFT item invoked"; }) } }) @@ -76,40 +75,7 @@ public Issue36154() BackgroundColor = Colors.CornflowerBlue, Command = new Command(() => { - resultLabel.Text = "✅ RIGHT item invoked"; - Console.WriteLine("ISSUE36154: RIGHT item invoked"); - }) - } - }) - { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, - - TopItems = new SwipeItems(new[] - { - new SwipeItem - { - AutomationId = "TopItem", - Text = "▲ TOP", - BackgroundColor = Colors.Orchid, - Command = new Command(() => - { - resultLabel.Text = "✅ TOP item invoked"; - Console.WriteLine("ISSUE36154: TOP item invoked"); - }) - } - }) - { Mode = SwipeMode.Execute, SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close }, - - BottomItems = new SwipeItems(new[] - { - new SwipeItem - { - AutomationId = "BottomItem", - Text = "▼ BOTTOM", - BackgroundColor = Colors.Tomato, - Command = new Command(() => - { - resultLabel.Text = "✅ BOTTOM item invoked"; - Console.WriteLine("ISSUE36154: BOTTOM item invoked"); + resultLabel.Text = "RIGHT invoked!"; }) } }) @@ -121,7 +87,6 @@ public Issue36154() swipeView.SwipeStarted += (s, e) => { directionLabel.Text = $"Direction: {e.SwipeDirection} Offset: 0"; - Console.WriteLine($"ISSUE36154: SwipeStarted direction={e.SwipeDirection}"); }; swipeView.SwipeChanging += (s, e) => @@ -130,12 +95,17 @@ public Issue36154() swipeView.SwipeEnded += (s, e) => { directionLabel.Text = $"Direction: {e.SwipeDirection} Open: {e.IsOpen}"; - Console.WriteLine($"ISSUE36154: SwipeEnded direction={e.SwipeDirection} isOpen={e.IsOpen}"); }; Content = new Grid { - RowDefinitions = Rows.Define(Auto, Star, Auto, Auto), + RowDefinitions = + [ + new RowDefinition { Height = GridLength.Auto }, + new RowDefinition { Height = GridLength.Star }, + new RowDefinition { Height = GridLength.Auto }, + new RowDefinition { Height = GridLength.Auto }, + ], Children = { new Label diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs index eac309a6c5ea..734ccabb9a09 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue36154.cs @@ -15,49 +15,15 @@ public Issue36154(TestDevice testDevice) : base(testDevice) // Verify that swiping left on the WebView reveals the Right swipe items [Test] [Category(UITestCategories.SwipeView)] - public void SwipeLeftRevealsRightItems() + public void Issue36154SwipeViewShouldRevealItems() { - var rect = App.WaitForElement("TheWebView").GetRect(); + var rect = App.WaitForElement("TheSwipeView").GetRect(); var centerX = rect.X + rect.Width / 2; var centerY = rect.Y + rect.Height / 2; // Swipe left (finger moves left) → reveals RightItems App.DragCoordinates(centerX, centerY, centerX - 200, centerY); - App.WaitForElement("RightItem"); - } - - // Verify that swiping right on the WebView reveals the Left swipe items - [Test] - [Category(UITestCategories.SwipeView)] - public void SwipeRightRevealsLeftItems() - { - var rect = App.WaitForElement("TheWebView").GetRect(); - var centerX = rect.X + rect.Width / 2; - var centerY = rect.Y + rect.Height / 2; - - // Swipe right (finger moves right) → reveals LeftItems - App.DragCoordinates(centerX, centerY, centerX + 200, centerY); - - App.WaitForElement("LeftItem"); - } - - // Verify that the WebView can still scroll vertically inside the SwipeView - [Test] - [Category(UITestCategories.SwipeView)] - public void WebViewCanScrollVertically() - { - var rect = App.WaitForElement("TheWebView").GetRect(); - var centerX = rect.X + rect.Width / 2; - var startY = rect.Y + rect.Height * 3 / 4; - var endY = rect.Y + rect.Height / 4; - - // Scroll up (finger moves up) inside the WebView — should NOT trigger swipe items - App.DragCoordinates(centerX, startY, centerX, endY); - - // SwipeView should NOT have triggered — result label stays at default - var resultText = App.WaitForElement("ResultLabel").GetText(); - Assert.That(resultText, Is.EqualTo("Swipe result will appear here"), - "WebView vertical scroll should not trigger SwipeView items"); + Assert.That(App.WaitForElement("ResultLabel").GetText(), Is.EqualTo("RIGHT invoked!")); } } diff --git a/src/Core/src/Platform/Android/MauiSwipeView.cs b/src/Core/src/Platform/Android/MauiSwipeView.cs index 90a52db98b47..80d517826fbf 100644 --- a/src/Core/src/Platform/Android/MauiSwipeView.cs +++ b/src/Core/src/Platform/Android/MauiSwipeView.cs @@ -133,10 +133,6 @@ bool ShouldInterceptScrollChildrenTouch(SwipeDirection swipeDirection) if (_contentView is null || _initialPoint is null) return false; - // When the content view itself is a WebView, check scroll boundaries directly. - // The child-iteration loop below inspects internal Chromium sub-views via - // GetChildAt(0) whose dimensions are unreliable. CanScrollHorizontally/Vertically - // gives accurate boundary state, mirroring iOS's pan gesture direction logic. if (_contentView is AWebView contentWebView) { return ShouldInterceptWebViewTouch(contentWebView, swipeDirection); @@ -175,9 +171,7 @@ bool ShouldInterceptScrollChildrenTouch(SwipeDirection swipeDirection) return true; } - // Mirrors iOS's UIPanGestureRecognizer direction logic: only intercept when the WebView - // has reached its scroll boundary in the gesture direction, so the other direction - // (e.g. vertical scroll) passes through unimpeded — just like ShouldRecognizeSimultaneously. + // Determines whether the WebView should intercept touch events based on its scroll position and the swipe direction. static bool ShouldInterceptWebViewTouch(AWebView webView, SwipeDirection swipeDirection) => swipeDirection switch { diff --git a/src/Core/src/Platform/Android/MauiWebView.cs b/src/Core/src/Platform/Android/MauiWebView.cs index 20b7258a0d89..f948e554d7a8 100644 --- a/src/Core/src/Platform/Android/MauiWebView.cs +++ b/src/Core/src/Platform/Android/MauiWebView.cs @@ -38,12 +38,7 @@ protected override void OnAttachedToWindow() // Re-evaluate ClipBounds when re-parented (e.g., wrapped in WrapperView for shadow) UpdateClipBounds(Width, Height); - // Cache whether this WebView lives inside a MauiSwipeView. When it does, we must - // not call RequestDisallowInterceptTouchEvent(true) — doing so sets - // FLAG_DISALLOW_INTERCEPT on the SwipeView, which causes Android to skip its - // OnInterceptTouchEvent for Move events and prevents swipe gesture detection - // (issue #36154). Cached here rather than on every touch event for performance. - _hasSwipeViewParent = ((View)this).GetParentOfType() != null; + _hasSwipeViewParent = ((View)this).GetParentOfType() is not null; } void UpdateClipBounds(int width, int height) From 335eee714ae5468c93c30ef9e106f2ee92ab9e82 Mon Sep 17 00:00:00 2001 From: Subhiksha Chandrasekaran Date: Tue, 30 Jun 2026 16:01:33 +0530 Subject: [PATCH 3/4] review concerns addressed --- src/Core/src/Platform/Android/MauiWebView.cs | 10 +++++++--- .../src/PublicAPI/net-android/PublicAPI.Unshipped.txt | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Core/src/Platform/Android/MauiWebView.cs b/src/Core/src/Platform/Android/MauiWebView.cs index f948e554d7a8..85dbb5e433c9 100644 --- a/src/Core/src/Platform/Android/MauiWebView.cs +++ b/src/Core/src/Platform/Android/MauiWebView.cs @@ -41,6 +41,12 @@ protected override void OnAttachedToWindow() _hasSwipeViewParent = ((View)this).GetParentOfType() is not null; } + protected override void OnDetachedFromWindow() + { + base.OnDetachedFromWindow(); + _hasSwipeViewParent = false; + } + void UpdateClipBounds(int width, int height) { if (width > 0 && height > 0) @@ -79,9 +85,7 @@ public override bool OnTouchEvent(MotionEvent? e) case MotionEventActions.Move: // Do not request disallow intercept when inside a SwipeView — that would set // FLAG_DISALLOW_INTERCEPT on the SwipeView and prevent it from detecting - // horizontal swipe gestures via OnInterceptTouchEvent (issue #36154). - // For all other containers (e.g. ScrollView), claim touch ownership normally - // so they don't steal scroll events from the WebView (PR #33133). + // swipe gestures if (!_hasSwipeViewParent) { Parent?.RequestDisallowInterceptTouchEvent(true); diff --git a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt index eebc770d253a..61f68c744472 100644 --- a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt @@ -17,3 +17,4 @@ override Microsoft.Maui.Platform.MauiHybridWebView.OnSizeChanged(int width, int override Microsoft.Maui.Platform.MauiWebView.OnAttachedToWindow() -> void override Microsoft.Maui.Platform.MauiWebView.OnSizeChanged(int width, int height, int oldWidth, int oldHeight) -> void override Microsoft.Maui.Platform.MauiWebView.OnTouchEvent(Android.Views.MotionEvent? e) -> bool +override Microsoft.Maui.Platform.MauiWebView.OnDetachedFromWindow() -> void From 179c2d145bfddf657aeef0b19bf7e71cde9b7f81 Mon Sep 17 00:00:00 2001 From: Subhiksha Chandrasekaran Date: Wed, 1 Jul 2026 18:54:46 +0530 Subject: [PATCH 4/4] Addressed review concern --- src/Core/src/Platform/Android/MauiSwipeView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Core/src/Platform/Android/MauiSwipeView.cs b/src/Core/src/Platform/Android/MauiSwipeView.cs index 80d517826fbf..eee1b5a4d8d5 100644 --- a/src/Core/src/Platform/Android/MauiSwipeView.cs +++ b/src/Core/src/Platform/Android/MauiSwipeView.cs @@ -171,7 +171,7 @@ bool ShouldInterceptScrollChildrenTouch(SwipeDirection swipeDirection) return true; } - // Determines whether the WebView should intercept touch events based on its scroll position and the swipe direction. + // Determines whether the SwipeView should intercept touch events when the content is a WebView, based on the WebView's scroll position and the swipe direction. static bool ShouldInterceptWebViewTouch(AWebView webView, SwipeDirection swipeDirection) => swipeDirection switch {