Android - la Rédaction d'un personnalisé (composé) de la composante

L'appli Android, je suis actuellement à l'élaboration d'une activité qui a connu une croissance assez importante. C'est principalement parce qu'il contient un TabWidget avec 3 onglets. Chaque onglet dispose d'un certain nombre de composants. L'activité de contrôle de tous les composants à la fois. Je pense donc que vous pouvez imaginer que cette Activité a comme 20 champs (un champ pour presque tous les composants). Il contient également beaucoup de logique (cliquez sur les auditeurs, logique pour remplir les listes, etc).

Ce que j'ai l'habitude de le faire en composant en fonction des cadres est de diviser le tout dans des composants personnalisés. Chaque composant personnalisé aurait alors une responsabilité claire. Il contient son propre ensemble de composants et de toutes les autres logiques liées à cette composante.

J'ai essayé de comprendre comment cela peut être fait, et j'ai trouvé quelque chose dans l'Android à la documentation de ce qu'ils aiment appeler un "Composé de Contrôle". (Voir http://developer.android.com/guide/topics/ui/custom-components.html#compound et faites défiler jusqu'à la "Composé de la section" Commandes) je voudrais créer un tel composant basé sur un fichier XML de définition de la vue structure.

Dans la documentation, il est dit:

Noter que tout comme une Activité,
vous pouvez utiliser le déclaratif
(Basé sur XML) approche de la création de la
composants contenus, ou vous pouvez imbriquer
par programmation à partir de votre code.

Bien, que de bonnes nouvelles! L'approche XML est exactement ce que je veux! Mais il ne dit pas comment le faire, sauf qu'elle est "comme une Activité"... Mais ce que je fais dans une Activité d'appel setContentView(...) pour gonfler les points de vue à partir de XML. Cette méthode n'est pas disponible si vous avez par exemple la sous-classe LinearLayout.

J'ai donc essayé de gonfler le XML manuellement comme ceci:

public class MyCompoundComponent extends LinearLayout {

    public MyCompoundComponent(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.my_layout, this);
    }
}

Cela fonctionne, sauf pour le fait que le XML je suis de chargement a LinearLayout déclaré que l'élément racine. Cette résultats dans la gonflés LinearLayout d'être un enfant de MyCompoundComponent qui lui-même est déjà un LinearLayout!! Alors maintenant, nous avons une redondant LinearLayout entre MyCompoundComponent et les vues qu'elle a réellement besoin.

Quelqu'un peut-il merci de me fournir une meilleure façon d'aborder cette question, en évitant d'avoir une redondance LinearLayout instancié?