2009-12-07 10 views
2

J'essaie de créer des classes d'affichage Android (qui ne sont que des wrappers autour des mises en page définies dans un fichier XML). Est-ce exact:Envelopper un LinearLayout de xml

public class MyViewWrapper extends LinearLayout { 
    private TextView mTextView; 

    public MyViewWrapper(Context context) { 
     super(context); 
    } 

    public constructUI() { 
     LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.myview, this); 

     mTextView = (TextView)findViewById(R.id.myview_textview); 
    } 
} 

donc l'idée est juste que je peux construire mon point de vue comme ça, et ils ont une logique à l'intérieur pour modifier leur point de vue de l'enfant, etc. La mise en page ressemble à:

<LinearLayout> 
    <TextView /> 
</LinearLayout> 

Il On dirait que je vais avoir un LinearLayout inutile. La classe wrapper est elle-même un LinearLayout, puis elle attache le LinearLayout interne du fichier xml.

Est-ce correct?

Merci

Répondre

1

Vous pouvez remplacer le <LinearLayout> dans votre fichier de mise en page avec <merge>. Je n'ai pas essayé cela récemment, et je pense que j'ai rencontré des problèmes lorsque je l'ai essayé pour la dernière fois, mais en théorie cela devrait servir le but. <merge> signifie fondamentalement "prendre tous mes enfants et les mettre directement dans n'importe quel récipient dans lequel je suis gonflé".

Questions connexes