diff --git a/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp b/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp index 1a06227012cf830dbb66b6c30b5038be3aa06bb5..fe2a892164d86bdd90c147b0696642f86357a9c6 100644 --- a/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp +++ b/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp @@ -1052,8 +1052,7 @@ void MenuPattern::ShowMenuAppearAnimation() { auto host = GetHost(); CHECK_NULL_VOID(host); - if (isMenuShow_ && - (Container::GreatOrEqualAPITargetVersion(PlatformVersion::VERSION_TWELVE) || IsSelectOverlayExtensionMenu()) && + if (isMenuShow_ && Container::GreatOrEqualAPITargetVersion(PlatformVersion::VERSION_TWELVE) && previewMode_ == MenuPreviewMode::NONE) { auto renderContext = host->GetRenderContext(); CHECK_NULL_VOID(renderContext); @@ -1072,13 +1071,14 @@ void MenuPattern::ShowMenuAppearAnimation() AnimationOption option = AnimationOption(); option.SetCurve(MENU_ANIMATION_CURVE); - AnimationUtils::Animate(option, [renderContext, menuPosition]() { - if (renderContext) { + AnimationUtils::Animate(option, [this, renderContext, menuPosition]() { + CHECK_NULL_VOID(renderContext); + if (IsSelectOverlayExtensionMenu()) { renderContext->UpdatePosition( OffsetT(Dimension(menuPosition.GetX()), Dimension(menuPosition.GetY()))); - renderContext->UpdateOpacity(1.0f); - renderContext->UpdateTransformScale(VectorF(1.0f, 1.0f)); } + renderContext->UpdateOpacity(1.0f); + renderContext->UpdateTransformScale(VectorF(1.0f, 1.0f)); }); isExtensionMenuShow_ = false; } @@ -1279,6 +1279,9 @@ void MenuPattern::ShowStackExpandDisappearAnimation(const RefPtr& men void MenuPattern::ShowMenuDisappearAnimation() { + if (!Container::GreatOrEqualAPITargetVersion(PlatformVersion::VERSION_TWELVE)) { + return; + } auto host = GetHost(); CHECK_NULL_VOID(host); auto menuContext = host->GetRenderContext(); diff --git a/frameworks/core/components_ng/pattern/select_overlay/select_overlay_node.cpp b/frameworks/core/components_ng/pattern/select_overlay/select_overlay_node.cpp index 7fe7c8c74c5e8403fc8d0309fa0579b5e3c5dcb6..82bdc73e339e2aa28ad8866d998ef50d1f20a443 100644 --- a/frameworks/core/components_ng/pattern/select_overlay/select_overlay_node.cpp +++ b/frameworks/core/components_ng/pattern/select_overlay/select_overlay_node.cpp @@ -681,6 +681,9 @@ void SelectOverlayNode::MoreAnimation() AnimationUtils::Animate( extensionOption, [extensionContext, selectMenuInnerContext, id = Container::CurrentId(), shadowTheme]() { ContainerScope scope(id); + if (Container::LessThanAPITargetVersion(PlatformVersion::VERSION_TWELVE)) { + extensionContext->UpdateOpacity(1.0); + } extensionContext->UpdateTransformTranslate({ 0.0f, 0.0f, 0.0f }); auto colorMode = SystemProperties::GetColorMode(); extensionContext->UpdateBackShadow(shadowTheme->GetShadow(ShadowStyle::OuterDefaultMD, colorMode)); @@ -760,6 +763,9 @@ void SelectOverlayNode::BackAnimation() AnimationUtils::Animate( extensionOption, [extensionContext, selectMenuInnerContext, id = Container::CurrentId()]() { ContainerScope scope(id); + if (Container::LessThanAPITargetVersion(PlatformVersion::VERSION_TWELVE)) { + extensionContext->UpdateOpacity(0.0); + } extensionContext->UpdateTransformTranslate({ 0.0f, MORE_MENU_TRANSLATE.ConvertToPx(), 0.0f }); selectMenuInnerContext->UpdateOpacity(1.0); }); @@ -901,8 +907,11 @@ void SelectOverlayNode::AddExtensionMenuOptions(const std::vectorGetLayoutProperty()->UpdateVisibility(VisibleType::GONE); extensionMenuStatus_ = FrameNodeStatus::GONE; - + if (Container::LessThanAPITargetVersion(PlatformVersion::VERSION_TWELVE)) { + extensionMenuContext->UpdateOpacity(0.0); + } extensionMenuContext->UpdateTransformTranslate({ 0.0f, MORE_MENU_TRANSLATE.ConvertToPx(), 0.0f }); + extensionMenu_->MarkDirtyNode(PROPERTY_UPDATE_MEASURE); extensionMenu_->MarkModifyDone(); menuPattern->SetSelectOverlayExtensionMenuShow(); }