-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Fixed ItemSpacing on CarouselView resizes items [Android] #29796
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hey there @@Dhivya-SF4094! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
/azp run MAUI-UITests-public |
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes the item sizing calculation for CarouselView on Android by removing the incorrect subtraction of ItemSpacing
, and adds a UI test to verify that spacing no longer alters item width.
- Removed
ItemSpacing
from the width and height calculations inGetItemWidth()
/GetItemHeight()
on Android - Added a new UI test in TestCases.Shared.Tests and corresponding view in TestCases.HostApp to verify correct behavior
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
Controls/src/Core/Handlers/Items/CarouselViewHandler.Android.cs | Adjusted width/height calculation to drop ItemSpacing subtraction |
TestCases.Shared.Tests/Tests/Issues/Issue29609.cs | Added UI test for spacing behavior (skipped on Windows) |
TestCases.HostApp/Issues/Issue29609.cs | Added sample page with CarouselView to exercise the spacing fix |
Comments suppressed due to low confidence (1)
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue29609.cs:1
- The preprocessor directive has an extra space (
# if
); it should be#if TEST_FAILS_ON_WINDOWS
to compile correctly.
# if TEST_FAILS_ON_WINDOWS // ItemSpacing on CarouselView is not applied on Windows https://github.com/dotnet/maui/issues/29772
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rmarinho Re-saved the screenshot for CarouselViewShouldRenderCorrectly. |
/azp run MAUI-UITests-public |
Azure Pipelines successfully started running 1 pipeline(s). |
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
For more information about inflight process check https://github.com/dotnet/maui/wiki/Inflight-Branch-Process # .NET MAUI Release Notes - inflight/candidate Branch ## MAUI Product Fixes * [iOS] Fix SwipeView programmatic open when background color is set by @Shalini-Ashokan in #29765 * [iOS] FormattedText with text color causes stack overflow - fix by @kubaflo in #29874 * [iOS] Fix AdaptiveTrigger not working as expected by @jsuarezruiz in #20987 * [iOS] Fix for Flyout title is not broken over multiple lines when you rotate your screen by @BagavathiPerumal in #29171 * [Windows] Fix for Assigning null to the SelectedItem of the CollectionView in the SelectionChanged event does not clear the selection by @SyedAbdulAzeemSF4852 in #29288 * Fix TapCoordinates method in Catalyst by @jsuarezruiz in #29775 * Fixed ItemSpacing on CarouselView resizes items [Android] by @Dhivya-SF4094 in #29796 * Perf : ButtonContentTypeConverter now using InvariantCulture to parse double by @antoine-jonathan in #25393 * ToolbarItem behavior with ImageSource iOS - fix by @kubaflo in #28833 * [Android] Fixed Button Shadow Color Transparency Not Applied Correctly by @NanthiniMahalingam in #29371 * Don't call NSAttributedString with HTML from a background thread by @kubaflo in #26153 * [Windows] Implemented the Resize and Downsize functions in the W2DImage class by @HarishwaranVijayakumar in #29138 * Templated indicator view - improvements by @kubaflo in #25642 * Update Issue25946.xaml by @anandhan-rajagopal in #30025 ## Testing * Fixed Test case failure in PR 26153 - iOS by @kubaflo in #29906 * Fixed Test case failure in PR 25642 - snapshots by @kubaflo in #29881 * [Testing] Feature Matrix UITest Cases for RadioButton by @TamilarasanSF4853 in #29744 * [Testing] Feature Matrix UITest Cases for CollectionView ItemsSource Feature by @LogishaSelvarajSF4525 in #29322 * [Testing] Feature Matrix UITest Cases for Stepper by @nivetha-nagalingam in #29731 * [Testing] Feature Matrix UITest Cases for CheckBox Control by @anandhan-rajagopal in #29739 * Update the comment for the test properties by @mattleibow in #27306 ## Dependency Updates * No changes in this category ## Docs * No changes in this category ## Housekeeping * [create-pull-request] automated change by @github-actions[bot] in #29875 * [create-pull-request] automated change by @github-actions[bot] in #29792 * [create-pull-request] automated change by @github-actions[bot] in #29760 **Full Changelog**: origin/main...origin/inflight/candidate
* Fixed ItemSpacing on CarouselView * Added snapshot for Android and Mac * Resaved image for CarouselViewShouldRenderCorrectly
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 Detail
When using a LinearItemsLayout with a CarouselView on Android, the ItemSpacing will reduce the width of the elements in the CarouselView.
Root Cause
On Android, GetItemWidth() incorrectly subtracted ItemSpacing from the available width, causing items in CarouselView to appear narrower than intended.
Description of Change
Removed ItemSpacing from the item width calculation in GetItemWidth(). Item width is now calculated using only the available space minus PeekAreaInsets, ensuring consistent item sizing.
Validated the behaviour in the following platforms
Issues Fixed:
Fixes #29609
Screenshots