mcu_hi3321_watch/tjd/ui/app/setting/TjdUiComponentList.cpp
2025-05-26 20:15:20 +08:00

31 lines
1.1 KiB
C++

#include "TjdUiComponentList.h"
namespace TJD {
void TjdUIList::ReMeasure()
{
TjdUIListView *view = static_cast<TjdUIListView *>(GetChildrenHead()); // 获取头节点
if (view == nullptr) {
return;
}
view->Scale(OHOS::Vector2<float>(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<float>(scale, scale), {225.0, 0});
else
view->Scale(OHOS::Vector2<float>(scale, scale), {225.0, 110});
} else {
view->Scale(OHOS::Vector2<float>(scale, scale), {225.0, 55});
}
view->SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff * scale);
view = static_cast<TjdUIListView *>(view->GetNextSibling());
} while (view != nullptr);
}
} // namespace TJD