mirror of
https://gitee.com/openharmony/arkui_ace_engine
synced 2025-03-07 11:44:41 +00:00
commit
e63abbc2f4
@ -91,6 +91,7 @@ frameworks/core/components_ng/pattern/form/ @arondave @arcticsun
|
||||
frameworks/core/components_ng/pattern/gauge/ @Hu_ZeQi
|
||||
frameworks/core/components_ng/pattern/gesture/ @zheng-qiyi
|
||||
frameworks/core/components_ng/pattern/grid/ @zcdqs
|
||||
frameworks/core/components_ng/pattern/grid/irregular/ @zhoutianer
|
||||
frameworks/core/components_ng/pattern/grid_col/ @xiexiyun
|
||||
frameworks/core/components_ng/pattern/grid_container/ @xiexiyun
|
||||
frameworks/core/components_ng/pattern/grid_row/ @xiexiyun
|
||||
|
@ -411,6 +411,7 @@ bool GridPattern::OnDirtyLayoutWrapperSwap(const RefPtr<LayoutWrapper>& dirty, c
|
||||
}
|
||||
ProcessEvent(indexChanged, gridLayoutInfo_.currentHeight_ - gridLayoutInfo_.prevHeight_);
|
||||
gridLayoutInfo_.prevHeight_ = gridLayoutInfo_.currentHeight_;
|
||||
gridLayoutInfo_.extraOffset_.reset();
|
||||
SetScrollSource(SCROLL_FROM_NONE);
|
||||
UpdateScrollBarOffset();
|
||||
if (config.frameSizeChange) {
|
||||
|
@ -50,10 +50,6 @@ void GridIrregularLayoutAlgorithm::Measure(LayoutWrapper* layoutWrapper)
|
||||
gridLayoutInfo_.currentOffset_ = postJumpOffset_;
|
||||
MeasureOnOffset(mainSize);
|
||||
}
|
||||
if (gridLayoutInfo_.extraOffset_.has_value()) {
|
||||
gridLayoutInfo_.currentOffset_ += gridLayoutInfo_.extraOffset_.value();
|
||||
gridLayoutInfo_.extraOffset_.reset();
|
||||
}
|
||||
} else {
|
||||
MeasureOnOffset(mainSize);
|
||||
}
|
||||
@ -119,6 +115,10 @@ void GridIrregularLayoutAlgorithm::Init(const RefPtr<GridLayoutProperty>& props)
|
||||
|
||||
info.crossCount_ = static_cast<int32_t>(crossLens_.size());
|
||||
CheckForReset();
|
||||
|
||||
if (info.extraOffset_) {
|
||||
postJumpOffset_ += *info.extraOffset_;
|
||||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -22,8 +22,8 @@
|
||||
#include "core/components_ng/base/frame_node.h"
|
||||
#include "core/components_ng/layout/layout_wrapper.h"
|
||||
#include "core/components_ng/pattern/waterflow/layout/top_down/water_flow_layout_info.h"
|
||||
#include "core/components_ng/pattern/waterflow/water_flow_layout_property.h"
|
||||
#include "core/components_ng/pattern/waterflow/layout/water_flow_layout_utils.h"
|
||||
#include "core/components_ng/pattern/waterflow/water_flow_layout_property.h"
|
||||
#include "core/components_ng/pattern/waterflow/water_flow_pattern.h"
|
||||
#include "core/components_ng/pattern/waterflow/water_flow_sections.h"
|
||||
#include "core/components_ng/property/calc_length.h"
|
||||
@ -178,6 +178,10 @@ void WaterFlowSegmentedLayout::Init(const SizeF& frameSize)
|
||||
if (!wrapper_->IsConstraintNoChanged()) {
|
||||
postJumpOffset_ = PrepareJump(info_);
|
||||
}
|
||||
|
||||
if (info_->extraOffset_) {
|
||||
postJumpOffset_ += *info_->extraOffset_;
|
||||
}
|
||||
}
|
||||
|
||||
void WaterFlowSegmentedLayout::SegmentInit(
|
||||
@ -334,10 +338,6 @@ void WaterFlowSegmentedLayout::MeasureOnJump(int32_t jumpIdx)
|
||||
info_->align_ = TransformAutoScroll(item);
|
||||
}
|
||||
info_->currentOffset_ = SolveJumpOffset(item) + postJumpOffset_;
|
||||
if (info_->extraOffset_.has_value()) {
|
||||
info_->currentOffset_ += info_->extraOffset_.value();
|
||||
info_->extraOffset_.reset();
|
||||
}
|
||||
|
||||
Fill(jumpIdx);
|
||||
info_->Sync(mainSize_, false);
|
||||
|
@ -262,6 +262,7 @@ bool WaterFlowPattern::OnDirtyLayoutWrapperSwap(const RefPtr<LayoutWrapper>& dir
|
||||
prevOffset_ = layoutInfo_->Offset();
|
||||
layoutInfo_->jumpIndex_ = EMPTY_JUMP_INDEX;
|
||||
layoutInfo_->targetIndex_.reset();
|
||||
layoutInfo_->extraOffset_.reset();
|
||||
UpdateScrollBarOffset();
|
||||
CheckScrollable();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user