Aller au contenu

layout weight dans la source?


marble78

Recommended Posts

Bonjour,

Pour une application que je code, je doit définir un layout en dehors d'un fichier layout XML.

en fait il s'agit d'une Classe contenant un layout, un textView, un bouton.. que je duplique dans un tableau pour en afficher plusieurs à l'écran.

Je suis donc obligé de le coder dans la source et je n'ai pas trouver comment appliquer un layout_weight dans la source, aussi surprenant que ca puisse paraitre la propriété android:weight n'a pas de méthodes associée.

Si quelqu'un à une solution, peut-être définir un layout dans un WML et m'en servir comme modèle pour la création de mes ojets...

Merci

Lien vers le commentaire
Partager sur d’autres sites

De manière programmatique, un layout_weght ne se positionne pas sur un composant lui-même (c'est pour cela qu'il n'y a pas de méthode associée), mais sur un LayoutParams (un LinearLayout.LayoutParams plus exactement), layoutParams que tu associes ensuite à ton composant

Sinon, il est aussi possible de charger un morceau de layout qui définirait tes composants, en passant par un LayoutInflater

LayoutInflater inflater = getLayoutInflater();
View v = inflater.inflate(R.layout.id_de_mon_layout_modele, null);

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi mettre dans un tableau. sous android, seule un tableau à une dimension est possible donc autant mettre une liste. et la tu pourra définir un layout pour les items de ta liste dans un fichier xml

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Il est possible d'inflater un fichier XML, mais il est tout à fait possible de définir le layout_weight en JAVA en utilisant la classe LinearLayout.LayoutParams ou TableLayout.LayoutParams :

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

http://developer.android.com/reference/android/widget/TableLayout.LayoutParams.html

view .setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f));

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...