2013-09-24 1 views
2

J'essaie de créer une vue personnalisée étend RelativeLayout. Pour éviter d'ajouter une vue par codage. Je prépare un xml avec mon relativelayout personnalisé.Custom ViewGroup par gonflement xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    ... 
</RelativeLayout> 

donc à mon avis classe personnalisée, je gonflerait le xml par

View.inflate(context, R.layout.custom_view, this); 

Ma question est que ma classe est déjà un RelativeLayout, si je fait, j'aurais deux niveaux de RelativeLayout . Bien sûr, je peux le résoudre en supprimant le RelativeLayout externe en XML. Mais si je le fais, je ne peux pas voir l'aperçu dans l'éditeur xml dans eclipse, ce qui est la raison pour laquelle je veux que mon affichage personnalisé se déroule à partir de xml.

Même ma classe de vue personnalisée s'étend FrameLayout, il y aurait une couche de plus dans la hiérarchie de vue. Comment résoudre ce problème?

Répondre

2

Pour réduire la couche supplémentaire inutile, vous devez utiliser des balises de fusion. Voici un bon exemple sur la façon de l'utiliser.

http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-by.html

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 
    ... 
</merge> 
+1

mais en remplaçant RelativeLayout par fusion dans xml ne manquera pas de eclipse fit aperçu que j'utilise une propriété relativelayout dans la vue des enfants – Bear

Questions connexes