diff --git a/frameworks/src/core/components/component.cpp b/frameworks/src/core/components/component.cpp index afdb3b2..377e642 100644 --- a/frameworks/src/core/components/component.cpp +++ b/frameworks/src/core/components/component.cpp @@ -1748,11 +1748,7 @@ void Component::RemoveChild(Component *childNode) return; } - // the head itself is the last one - if (temp == childHead_) { - childHead_ = nullptr; - } - temp->SetNextSibling(nullptr); + temp->SetNextSibling(childNode->GetNextSibling()); childNode->SetNextSibling(nullptr); childNode->SetParent(nullptr); parentView->Remove(childNativeView); diff --git a/frameworks/src/core/components/component.h b/frameworks/src/core/components/component.h index e20d501..5cb5c9c 100644 --- a/frameworks/src/core/components/component.h +++ b/frameworks/src/core/components/component.h @@ -184,17 +184,17 @@ public: virtual void LayoutChildren() {} static void BuildViewTree(Component *currComponent, Component *parent, ConstrainedParameter &parentParameter); - const Component *GetParent() const + Component *GetParent() const { return parent_; } - const Component *GetChildHead() const + Component *GetChildHead() const { return childHead_; } - const Component *GetNextSibling() const + Component *GetNextSibling() const { return nextSibling_; }