Call Removeview() on the Child's Parent First

The specified child already has a parent. You must call removeView() on the child's parent first (Android)

The error message says what You should do.

// TEXTVIEW
if(tv.getParent() != null) {
((ViewGroup)tv.getParent()).removeView(tv); // <- fix
}
layout.addView(tv); // <========== ERROR IN THIS LINE DURING 2ND RUN
// EDITTEXT

Kotlin : The specified child already has a parent. You must call removeView() on the child's parent first

You're trying to add the LinearLayout with the ID root_layout as its own child here:

layout.addView(layout)

Perhaps you meant to add your newly inflated View as its child?

layout.addView(view)

Activity: You must call removeView() on the child's parent first

You're adding the same view multiple times...

for (...) {
// can't add _same_ view multiple times!
gridLayout.addView(profileCategoryActive);
}

A view can only have one parent / be added to one other view, hence the exception.


If you want to add multiple views to a layout, then you need to inflate multiple views, and add them each separately.

for (...) {
View view = inflate(..) // inflate new view
layout.addView(view); // add new view
}

Call removeView() on the child's parent first

Solution:

((ViewGroup)scrollChildLayout.getParent()).removeView(scrollChildLayout);
//scrollView.removeView(scrollChildLayout);

Use the child element to get a reference to the parent. Cast the parent to a ViewGroup so that you get access to the removeView method and use that.

Thanks to @Dongshengcn for the solution

The specified child already has a parent. You must call removeView() on the child's parent first. Facing this issue

Seems like this was reported and according to the comment in there, this should be fixed for preview 11+: github.com/dotnet/maui/issues/3511 Which VS2022 have you installed?

Installing Visual Studio 2022 v17.1 Preview 2 should give you .NET MAUI Preview 11 which should resolve the issue.



Related Topics



Leave a reply



Submit