I have a ListView whose rows display data held within a `Message` Class. The view for each row is built when the `Message` Class is initialized and stored as a ViewGroup. I chose to do this as building the ViewGroup within the ListView adapters `getView` method was slow and caused the ListView to stutter when scrolled.

Ideally, in the ListView adapter I want to get a reference to the rows root view (which is a FrameLayout) and add this ViewGroup to it I.e. `rootView.addView(message.getBody())` where getBody() returns the ViewGroup stored in the message class.

However if I do this I get this exception when I scroll up and down the list a few times:

```
IllegalStateException: The specified child already has a parent

```

If I attempt to call `removeAllViews()` on the rows root view the outcome is the same.

Is there a way to build a view once, store it within an object and simply add this to a row over and over?

Thanks