31 lines
1.1 KiB
C++
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
|