!14950 【外置ScrollBar】修复外置滚动条测算时未考虑padding的问题

Merge pull request !14950 from 张荣杰/0613
This commit is contained in:
openharmony_ci 2023-06-24 10:48:05 +00:00 committed by Gitee
commit b4d36b0fc1
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -71,6 +71,9 @@ void ScrollBarLayoutAlgorithm::Measure(LayoutWrapper* layoutWrapper)
auto constraint = layoutProperty->GetLayoutConstraint();
auto idealSize = CreateIdealSize(constraint.value(), axis, MeasureType::MATCH_CONTENT);
auto parentSize = CreateIdealSize(constraint.value(), axis, MeasureType::MATCH_PARENT);
auto padding = layoutProperty->CreatePaddingAndBorder();
MinusPaddingToSize(padding, idealSize);
MinusPaddingToSize(padding, parentSize);
// Calculate child layout constraint.
auto childLayoutConstraint = layoutProperty->CreateChildConstraint();
@ -84,6 +87,7 @@ void ScrollBarLayoutAlgorithm::Measure(LayoutWrapper* layoutWrapper)
// Use child size when self idea size of scroll is not setted.
auto childSize = childWrapper->GetGeometryNode()->GetMarginFrameSize();
UpdateIdealSize(axis, childSize, parentSize, idealSize);
AddPaddingToSize(padding, idealSize);
auto selfSize = idealSize.ConvertToSizeT();
selfSize.Constrain(constraint->minSize, constraint->maxSize);
layoutWrapper->GetGeometryNode()->SetFrameSize(selfSize);