#include "TjdUiComponentList.h" namespace TJD { void TjdUIList::ReMeasure() { TjdUIListView *view = static_cast(GetChildrenHead()); // 获取头节点 if (view == nullptr) { return; } view->Scale(OHOS::Vector2(1.0, 1.0), {0, 0}); view->SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff); int16_t midY = GetY() + GetHeight() / 2; do { int offset = (view->GetY() + view->GetHeight() / 2 - midY); int temp = OHOS::EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_); float scale = 1.0 - ((float)temp / scaleFactor_); if (scale <= 0.625) { if (view->GetY() > 288) view->Scale(OHOS::Vector2(scale, scale), {225.0, 0}); else view->Scale(OHOS::Vector2(scale, scale), {225.0, 110}); } else { view->Scale(OHOS::Vector2(scale, scale), {225.0, 55}); } view->SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff * scale); view = static_cast(view->GetNextSibling()); } while (view != nullptr); } } // namespace TJD