Skip to content

Commit 5041f71

Browse files
PureWeenkubaflo
andauthored
Fix Android ScrollView to Measure Content Correct (#30997)
### Description of Change This PR is a re-application of #30964 to make sure that @kubaflo is added as a co-author This pull request introduces several updates to the `ScrollView` and its related components to improve layout handling, measurement logic, and platform-specific implementation for Android. The changes focus on simplifying code, enhancing functionality, and addressing edge cases in layout and measurement. ### Enhancements to measurement and layout logic: - **Refactored `ICrossPlatformLayout.CrossPlatformMeasure` and `CrossPlatformArrange`:** Improved measurement logic by introducing explicit constraints based on scroll orientation and utilizing the new `MeasureContent` method for more accurate content measurement. Added null checks and default values to prevent errors during layout operations. (`[[1]](diffhunk://#diff-d3dcb79b77b66e99d195c7e8406a19b95224604786bab4e82509c4acd3913735L246-R266)`, `[[2]](diffhunk://#diff-d3dcb79b77b66e99d195c7e8406a19b95224604786bab4e82509c4acd3913735L237-R238)`) - **Introduced `MeasureContent` method in `LayoutExtensions`:** Added a new internal method to handle content measurement with support for explicit dimensions and padding adjustments, improving modularity and reusability. (`[src/Core/src/Layouts/LayoutExtensions.csR170-R200](diffhunk://#diff-923a4005b8fd76c6fe5a26814219f9002063666b6d6a49b6b1e19aea086628f4R170-R200)`) ### Platform-specific updates for Android: - **Updated `MauiHorizontalScrollView` initialization:** Enabled the `FillViewport` property to ensure the scroll view fills its viewport, enhancing usability for horizontal scrolling. (`[src/Core/src/Platform/Android/MauiScrollView.csL100-R104](diffhunk://#diff-546ef8b25e238ce6a1820c920cb327471d6481eefc486eae39b3e5a31b45d907L100-R104)`) - **Removed unused `CrossPlatformArrange` logic:** Simplified the layout handling in `MauiScrollView` by removing the `CrossPlatformArrange` property and related code, which was no longer required. (`[[1]](diffhunk://#diff-546ef8b25e238ce6a1820c920cb327471d6481eefc486eae39b3e5a31b45d907L232-L240)`, `[[2]](diffhunk://#diff-546ef8b25e238ce6a1820c920cb327471d6481eefc486eae39b3e5a31b45d907L324-L325)`) ### Code cleanup and refactoring: - **Improved readability in `ScrollView` and `ScrollViewHandler.Android`:** Adjusted formatting and removed redundant code to enhance clarity and maintainability. (`[[1]](diffhunk://#diff-7c61a3f8442182cb2e772edaa805382c721965440aa3b0244462d1aae6c4ee4dL518-R519)`, `[[2]](diffhunk://#diff-d3dcb79b77b66e99d195c7e8406a19b95224604786bab4e82509c4acd3913735L28-L35)`) ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #30951 <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> Co-authored-by: kubaflo <42434498+kubaflo@users.noreply.github.com>
2 parents 38c0051 + 4557b63 commit 5041f71

File tree

0 file changed

+0
-0
lines changed

    0 file changed

    +0
    -0
    lines changed

    0 commit comments

    Comments
     (0)