2010-07-11 4 views
2

J'ai une classe personnalisée appelée NoteView qui s'étend FrameLayout. Auparavant, je venais d'utiliser le stock LinearLayout et j'ai déjà une mise en page XML que je souhaite réutiliser en ajoutant toute cette hiérarchie (avec d'autres vues superposées, c'est pourquoi j'avais besoin de framelayout) au NoteView.Comment ajouter une mise en page de xml à Extended FrameLayout Android?

Le problème est que je ne peux pas comprendre comment gonfler le XML et l'ajouter au NoteView à partir de la classe NoteView. Je peux l'ajouter une fois l'initialisation terminée, mais je veux être capable de gonfler cette hiérarchie et de l'ajouter automatiquement lorsque mon NoteView est instancié ou gonflé à partir de XML.

Comment puis-je remplir mon FrameLayout étendu avec une mise en page de XML en l'ajoutant à partir de la classe NoteView elle-même?

Répondre

5

Essayez LayoutInflater

LayoutInflater inflater = (LayoutInflater) context 
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
LinearLayout myView = (LinearLayout) inflater.inflate(R.layout.my_layout, null); 
frameLayout.addChild(myView); 

Jetez un oeil à la documentation LayoutInflater ici: http://d.android.com/reference/android/view/LayoutInflater.html

+0

J'ai essayé, mais cela n'a pas fonctionné au début. Je me suis juste rendu compte que je jetais ma vue de haut niveau sur la mauvaise classe qui la faisait s'écraser. Toute cette question est un faux-fuyant. :) – CodeFusionMobile

+0

merci.ce code m'aider beaucoup –

+0

'FrameLayout' n'a pas la méthode' addChild (...) '. Voulez-vous dire 'addView (View child)'? – Roman

Questions connexes