From de2dd9c587706e0baf0d5abc229287a76fb192bf Mon Sep 17 00:00:00 2001 From: sunziyuan Date: Tue, 1 Jul 2025 11:56:13 +0800 Subject: [PATCH 1/2] fix_BottomDivider_youhua Signed-off-by: sunziyuan Change-Id: Ic017661b3460e5dbc0e10f2d19095cfd2c744c96 --- .../pattern/menu/menu_item/menu_item_pattern.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.cpp b/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.cpp index 02ca574bbab6..be1784d3bd0e 100644 --- a/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.cpp +++ b/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.cpp @@ -167,6 +167,7 @@ void MenuItemPattern::OnMountToParentDone() void MenuItemPattern::AttachBottomDivider() { + CreateBottomDivider(); CHECK_NULL_VOID(bottomDivider_); auto host = GetHost(); CHECK_NULL_VOID(host); @@ -196,7 +197,6 @@ void MenuItemPattern::OnAttachToFrameNode() RegisterOnTouch(); RegisterOnPress(); RegisterOnHover(); - CreateBottomDivider(); auto host = GetHost(); CHECK_NULL_VOID(host); MenuView::RegisterAccessibilityChildActionNotify(host); @@ -207,7 +207,6 @@ void CustomMenuItemPattern::OnAttachToFrameNode() InitFocusPadding(); RegisterOnKeyEvent(); RegisterOnTouch(); - CreateBottomDivider(); auto host = GetHost(); CHECK_NULL_VOID(host); MenuView::RegisterAccessibilityChildActionNotify(host); @@ -215,6 +214,9 @@ void CustomMenuItemPattern::OnAttachToFrameNode() void MenuItemPattern::CreateBottomDivider() { + if (bottomDivider_) { + return; + } auto host = GetHost(); CHECK_NULL_VOID(host); bottomDivider_ = FrameNode::GetOrCreateFrameNode(V2::MENU_DIVIDER_TAG, -- Gitee From fe77431bdcea3a2a5a9f0c5f8398faa2e47cc69a Mon Sep 17 00:00:00 2001 From: sunziyuan Date: Wed, 2 Jul 2025 16:51:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E5=89=B2?= =?UTF-8?q?=E7=BA=BF=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sunziyuan Change-Id: I72738f11527a17fe55c446f30b2941bb98574dba --- .../components_ng/pattern/menu/menu_item/menu_item_pattern.h | 1 + test/unittest/core/pattern/menu/menu_divider_test_ng.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.h b/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.h index 1e1abac32d00..d86f91a32e4c 100644 --- a/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.h +++ b/frameworks/core/components_ng/pattern/menu/menu_item/menu_item_pattern.h @@ -210,6 +210,7 @@ public: RefPtr GetBottomDivider() { + CreateBottomDivider(); return bottomDivider_; } diff --git a/test/unittest/core/pattern/menu/menu_divider_test_ng.cpp b/test/unittest/core/pattern/menu/menu_divider_test_ng.cpp index ccc5ea764cee..8fa3d2315f15 100644 --- a/test/unittest/core/pattern/menu/menu_divider_test_ng.cpp +++ b/test/unittest/core/pattern/menu/menu_divider_test_ng.cpp @@ -480,6 +480,9 @@ HWTEST_F(MenuDividerTestNG, MenuDividerTest009, TestSize.Level1) ASSERT_NE(menuItemPattern, nullptr); auto bottomDivider = menuItemPattern->GetBottomDivider(); EXPECT_NE(bottomDivider, nullptr); + auto bottomDivider1 = menuItemPattern->GetBottomDivider(); + EXPECT_NE(bottomDivider1, nullptr); + EXPECT_EQ(bottomDivider, bottomDivider1); auto dividerPattern = bottomDivider->GetPattern(); ASSERT_NE(dividerPattern, nullptr); auto layoutAlgorithm = dividerPattern->CreateLayoutAlgorithm(); -- Gitee