Fix CarouselView ItemsLayout Runtime Updates#29447
Merged
PureWeen merged 8 commits intodotnet:inflight/currentfrom May 13, 2025
Merged
Fix CarouselView ItemsLayout Runtime Updates#29447PureWeen merged 8 commits intodotnet:inflight/currentfrom
PureWeen merged 8 commits intodotnet:inflight/currentfrom
Conversation
Contributor
|
Hey there @@Shalini-Ashokan! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR addresses an issue where the CarouselView's ItemsLayout property did not update dynamically at runtime. The changes implement a mapper for the ItemsLayout property on iOS and Android and add corresponding UI tests to validate the behavior.
- Added dynamic ItemsLayout mapping and update logic for iOS and Android handlers.
- Updated test cases in Shared.Tests and HostApp to verify runtime layout changes.
- Extended conditional compilation in CarouselViewHandler for platform-specific ItemsLayout handling.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue29372.cs | Added a UI test for verifying CarouselView ItemsLayout updates (conditional on Windows) |
| src/Controls/tests/TestCases.HostApp/Issues/Issue29372.cs | Created a HostApp page to test dynamic ItemsLayout changes in CarouselView |
| src/Controls/src/Core/Handlers/Items2/CarouselViewHandler2.iOS.cs | Updated the iOS mapper to trigger layout updates when ItemsLayout changes |
| src/Controls/src/Core/Handlers/Items/CarouselViewHandler.cs | Expanded the ItemsLayout mapping condition to include ANDROID |
| src/Controls/src/Core/Handlers/Items/CarouselViewHandler.Android.cs | Added an internal method to update the layout manager when ItemsLayout changes |
Comments suppressed due to low confidence (2)
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue29372.cs:1
- Consider documenting the rationale behind conditionally excluding Windows from this test scenario to ensure adequate test coverage on all intended platforms.
#if TEST_FAILS_ON_WINDOWS // Related issue for windows: https://github.com/dotnet/maui/issues/29445
src/Controls/src/Core/Handlers/Items/CarouselViewHandler.Android.cs:61
- Verify that the UpdateLayoutManager method effectively updates the layout in response to runtime ItemsLayout changes, matching the behavior implemented on iOS.
recyclerView.UpdateLayoutManager();
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
rmarinho
approved these changes
May 13, 2025
github-actions bot
pushed a commit
that referenced
this pull request
May 13, 2025
* Fixed the issue for dynamic changes of ItemsLayout property * Simplified the fix * Removed unwanted lines * Modified the fix * Added null check * Added a test case and snapshots * Modified a test case * Modified the public api to internal
PureWeen
pushed a commit
that referenced
this pull request
May 14, 2025
* Fixed the issue for dynamic changes of ItemsLayout property * Simplified the fix * Removed unwanted lines * Modified the fix * Added null check * Added a test case and snapshots * Modified a test case * Modified the public api to internal
PureWeen
pushed a commit
that referenced
this pull request
May 14, 2025
* Fixed the issue for dynamic changes of ItemsLayout property * Simplified the fix * Removed unwanted lines * Modified the fix * Added null check * Added a test case and snapshots * Modified a test case * Modified the public api to internal
github-actions bot
pushed a commit
that referenced
this pull request
May 15, 2025
* Fixed the issue for dynamic changes of ItemsLayout property * Simplified the fix * Removed unwanted lines * Modified the fix * Added null check * Added a test case and snapshots * Modified a test case * Modified the public api to internal
PureWeen
added a commit
that referenced
this pull request
May 21, 2025
For more information about inflight process check https://github.com/dotnet/maui/wiki/Inflight-Branch-Process # .NET MAUI Release Notes ## New Release: May 21, 2025 We're excited to announce a new release of .NET MAUI with several bug fixes and improvements across various platforms. ### Bug Fixes #### iOS - **Map Control**: Fixed crash when navigating to a page containing a map more than once (#29369) - **CarouselView**: Fixed bounce-back behavior when Loop=false, ensuring proper scrolling experience (#29318) - **UIView**: Fixed NullReferenceException for UIView not being in UIWindow (#29460) #### Windows - **CarouselView**: Fixed HorizontalScrollBarVisibility="Never" not working properly (#29343) - **UI Controls**: Fixed the color not being applied to the Expand/Collapse Chevron icon (#29140) #### Windows & macOS - **Modal Navigation**: Fixed issue where Disappearing event was not triggered when closing a window with a modal page (#29129) #### Android - **Modal Pages**: Improved inheritance of StatusBar and NavigationBar background colors (#28568) - **Footer Scrolling**: Fixed footer scrolling issues in list controls (#29381) - **Modal Pages**: Improved inheritance of StatusBar and NavigationBar background colors on modal pages (#28568) #### Cross-Platform - **CarouselView**: Fixed ItemsLayout runtime updates to ensure proper layout behavior (#29447) - **CollectionView**: Fixed various issues in CollectionView implementation (#29423) ### Testing Improvements - Added feature matrix UITest cases for CollectionView dynamic changes (#29424) ### Code Quality - Fixed code formatting issues across the codebase - Minor typo corrections (#29379) ### Contributors This release was made possible by the hard work of our dedicated team and community contributors. We'd like to extend our gratitude to everyone who has contributed to this release. ### Installation This update is available through NuGet and the .NET SDK. Update your projects to get access to these fixes. ### Known Issues Please refer to our issue tracker for any known issues and their workarounds. --- For more information about .NET MAUI, visit [the official documentation](https://docs.microsoft.com/dotnet/maui/).
PureWeen
pushed a commit
that referenced
this pull request
May 21, 2025
* Fixed the issue for dynamic changes of ItemsLayout property * Simplified the fix * Removed unwanted lines * Modified the fix * Added null check * Added a test case and snapshots * Modified a test case * Modified the public api to internal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!
Issue Details
In CarouselView, the ItemsLayout property cannot be changed dynamically at runtime.
Root Cause
The mapper for the items layout was not implemented to support dynamic updates at runtime. As a result, changes made to the layout during runtime had no effect.
Description of Change
Implemented a mapper for the ItemsLayout to enable dynamic updates at runtime.
Validated the behavior in the following platforms
Issues Fixed
Fixes #29372
Output ScreenShot
Issue29372BeforeFix.mov
Issue29372AfterFix.mov