mirror of
https://gitee.com/openharmony/arkui_ace_engine
synced 2024-10-07 08:24:11 +00:00
!31149 修复在滚动条出现动画启动之后,设置透明度为0未生效的问题
Merge pull request !31149 from honzx/0420scrolbar
This commit is contained in:
commit
4842149834
@ -158,7 +158,7 @@ void ScrollBarOverlayModifier::StartBarAnimation(HoverAnimationType hoverAnimati
|
||||
StartHoverAnimation(fgRect, hoverAnimationType);
|
||||
StartAdaptAnimation(fgRect, needAdaptAnimation);
|
||||
}
|
||||
if (opacityAnimationType != OpacityAnimationType::NONE) {
|
||||
if (opacityAnimationType != OpacityAnimationType::NONE && isScrollable_) {
|
||||
StartOpacityAnimation(opacityAnimationType);
|
||||
}
|
||||
}
|
||||
|
@ -129,6 +129,11 @@ public:
|
||||
positionMode_ = positionMode;
|
||||
}
|
||||
|
||||
void SetScrollable(bool isScrollable)
|
||||
{
|
||||
isScrollable_ = isScrollable;
|
||||
}
|
||||
|
||||
private:
|
||||
Offset GetHoverOffset(const Size& size) const;
|
||||
// Animatable
|
||||
@ -148,6 +153,8 @@ private:
|
||||
HoverAnimationType hoverAnimatingType_ = HoverAnimationType::NONE;
|
||||
OpacityAnimationType opacityAnimatingType_ = OpacityAnimationType::NONE;
|
||||
PositionMode positionMode_ = PositionMode::RIGHT;
|
||||
|
||||
bool isScrollable_ = false;
|
||||
};
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
||||
|
@ -813,6 +813,7 @@ void ScrollablePattern::UpdateScrollBarRegion(float offset, float estimatedHeigh
|
||||
scrollBar_->SetScrollable(scrollable);
|
||||
if (scrollBarOverlayModifier_) {
|
||||
scrollBarOverlayModifier_->SetOpacity(scrollable ? UINT8_MAX : 0);
|
||||
scrollBarOverlayModifier_->SetScrollable(scrollable);
|
||||
}
|
||||
if (scrollable) {
|
||||
scrollBar_->ScheduleDisappearDelayTask();
|
||||
|
@ -274,11 +274,11 @@ HWTEST_F(ScrolleBarTestNg, ScrollBarAnimation002, TestSize.Level1)
|
||||
auto modifier = scrollPaint->GetOverlayModifier(&paintWrapper);
|
||||
auto scrollBarOverlayModifier = AceType::DynamicCast<ScrollBarOverlayModifier>(modifier);
|
||||
pattern_->SetScrollBar(DisplayMode::ON);
|
||||
scrollBarOverlayModifier->SetScrollable(true);
|
||||
EXPECT_EQ(scrollBar->displayMode_, DisplayMode::ON);
|
||||
EXPECT_TRUE(scrollBar->NeedPaint());
|
||||
ASSERT_NE(scrollBarOverlayModifier, nullptr);
|
||||
EXPECT_EQ(scrollBarOverlayModifier->GetOpacity(), UINT8_MAX);
|
||||
EXPECT_NE(scrollBarOverlayModifier->opacityAnimation_, nullptr);
|
||||
EXPECT_EQ(scrollBarOverlayModifier->opacityAnimatingType_, OpacityAnimationType::NONE);
|
||||
|
||||
/**
|
||||
@ -298,6 +298,7 @@ HWTEST_F(ScrolleBarTestNg, ScrollBarAnimation002, TestSize.Level1)
|
||||
*/
|
||||
scrollBar->PlayScrollBarAppearAnimation();
|
||||
scrollPaint->UpdateOverlayModifier(&paintWrapper);
|
||||
EXPECT_NE(scrollBarOverlayModifier->opacityAnimation_, nullptr);
|
||||
EXPECT_EQ(scrollBarOverlayModifier->opacityAnimatingType_, OpacityAnimationType::NONE);
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user