I usually have an AddToParent method in classes, that can add to a parent panel/activity directly. I prefer this approach because I want to build the layout top-to-bottom as I have to make sure all parents already have a parent. Sometimes my AddToParent just calls another/inner classes AddToParent.
Another way is to build your layout on a panel, and expose the Panel in AsPanel method. Then from the parent you can add it anywhere.
So either:
Activity->ClsA->ClsB
ClsA.AddToParent(Activity,w,x,y,z) <-clsA.AddToPArent will also call ClsB AddToParent
or
ClsA.BuildView <- This will have called ClsB.BuildView and returned on ClsA's panel
Activity.AddView(ClsA.AsPanel,w,x,y,z)