2010-04-02 4 views
6

Je construis une application Android et je suis un peu aux prises avec des vues personnalisées.Android: vue personnalisée basée sur la mise en page: comment?

Je voudrais avoir une vue réutilisable qui consiste en quelques éléments de mise en page standard. Disons un relativelayout avec quelques boutons dedans.

Comment dois-je procéder. Dois-je créer une classe de vue personnalisée qui étend RelativeLayout et ajouter par programme ces boutons? Je pense que c'est un peu exagéré?

Quelle est la façon de le faire correctement dans Android?

Répondre

11

Voici quelques étapes difficiles concernant une façon de créer une vue globale personnalisée:

  1. étendent RelativeLayout
  2. Fournir un constructeur dans votre nouvelle classe qui accepte contexte et AttributeSet, en veillant à appeler la superclasse première . N'ajoutez rien à ce stade. Attendez jusqu'à l'étape suivante.
  3. remplacer la méthode onFinishInflate, où vous pouvez ajouter votre contenu par le biais du code Java ou gonfler une ressource XML
  4. Ajoutez les gestionnaires d'événements, etc.
  5. créer éventuellement un fichier de ressources si votre widget exigera des attributs à définir.

+3

Notez que pour la ressource de mise en page XML, l'élément racine '' fonctionne bien pour ce scénario. – CommonsWare

+2

Je dois mentionner que l'utilisation de la méthode 'onFinishInflate' ne parvient pas à gonfler les mises en page enracinées' '. Si vous gonflez dans la méthode 'onCreate', cela fonctionne. – Peterdk

+1

Il ya aussi un document officiel sur ce sujet: http://developer.android.com/guide/topics/ui/custom-components.html#compound Mais en fait cette réponse m'a été plus utile :) – BoD

Questions connexes