sssweat Posté(e) 22 septembre 2010 Share Posté(e) 22 septembre 2010 Bonsoir à tous, J'ai commencé une application avec mes petites bases de Java, j'ai pas mal petits problèmes, la plupart résolus facilement (gros euphémisme^^)... Bref cependant, je n'arrive pas à comprendre comment placer des views dans un relativelayout directement ds le code java... (en xml c'est super simple, malheureusement je dois passer par du java là) Ce que je voudrais faire est super simple en plus lol... Ça serait juste de mettre 2 textviews ds ce relative layout, un tout a gauche (facile ^^), l'autre tout à droite (évidemment je bloque sur ça). J'ai essayé avec la gravité, mais ça marche pas. Je suppose qu'il doit y avoir juste une ligne de code à ecrire, mais impossible de mettre la main dessus, et je me perds un peu ds la doc lol... Merci d'avance à ceux qui pourront m'aider :) Edit: j'ai (enfin) trouvé, merci addRule lol. Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 23 septembre 2010 Share Posté(e) 23 septembre 2010 Tu pourrais poster ta solution ? Si jamais un membre cherche dans le forum pour le même problème un jour Lien vers le commentaire Partager sur d’autres sites More sharing options...
sssweat Posté(e) 23 septembre 2010 Auteur Share Posté(e) 23 septembre 2010 TextView et = new TextView(this); RelativeLayout.LayoutParams et_params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); et_params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, -1); et.setLayoutParams(et_params); monRelativeLayout.addView(et); Voilà. Cela dit, je pense qu'il y a de meilleures façons de faire... En attendant, ça marche^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cyril Mottier Posté(e) 23 septembre 2010 Share Posté(e) 23 septembre 2010 Non c'est bien comme ça ! Même si je doute encore de l'intérêt de la faire en Java ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sssweat Posté(e) 24 septembre 2010 Auteur Share Posté(e) 24 septembre 2010 J'ai suivi un tutorial en fait, et j'arrivais pas à faire le lien entre la classe personnalisée et le xml, d'où ma question. Mais en fait j'ai compris comment l'afficher via xml, donc double problème résolu, et ça va grandement me faciliter la vie ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
BapNesS Posté(e) 28 janvier 2011 Share Posté(e) 28 janvier 2011 Bonjour, Je tombe sur quasiment le même problème. je suis obligé de codé mon layout en Java et c'est toujours moins évident qu'en XML. Voilà ce que j'ai et ce que je veux faire ‒ désolé pour la médiocrité du schéma : Le premier est ce que j'ai. En gris, un LinearLayout horizontal. En rose, deux éléments peu important. Il s'agit de TextView pour le moment… En orange, un RelativeLayout. En violet, des TextView (ou autres) dont le nombre n'est pas fixe à chaque fois. J'aimerais que lorsque qu'ils y a trop de TextView violets, ils passent à la ligne. C'est pour cela que j'utilise un ReativeLayout. Cependant, mon code ne fonctionne pas et ils s'alignent tous en haut à gauche du RelativeLayout. Que faire ? Extrait de code : layout_h_b = new LinearLayout(this); layout_h_b.setOrientation(LinearLayout.HORIZONTAL); layout_h_b.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); tv_b = new TextView(this); tv_b.setText("det"); tv_b.setPadding(5, 5, 5, 5); tv_b.setBackgroundColor(Color.CYAN); layout_h_b.addView(tv_B); tv_b = new TextView(this); tv_b.setText("getit"); tv_b.setPadding(5, 5, 5, 5); tv_b.setBackgroundColor(Color.GRAY); layout_h_b.addView(tv_B); layout_r = new RelativeLayout(this); RelativeLayout.LayoutParams layout_r_params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layout_r.setLayoutParams(layout_r_params); int[] colors = new int[] { Color.YELLOW , Color.MAGENTA }; for (int i = 8 ; i >= 0 ; i--) { String res = ""; for (int j = 0 ; j <= i ; j++) { res = res + i; } tv_b = new TextView(this); tv_b.setText( res ); tv_b.setPadding(5, 5, 5, 5); tv_b.setBackgroundColor( colors[(i%colors.length)] ); layout_r.addView(tv_b, layout_r_params); tv_tmp = tv_b; }layout_h_b.addView(layout_r); Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 28 janvier 2011 Share Posté(e) 28 janvier 2011 Tes TextView sont mal positionnés parce que tu n'indiques pas comment les positionner au sein du RelativeLayout; c'est le rôle du paramètre layout_r_params que tu passes à la méthode addView, sauf que ce paramètre est toujours le même. Il faut que pour chaque TextView fils, tu instancies un nouveau RelativeLayout.LayoutParams sur lequel tu vas pouvoir indiquer les contraintes de positionnement de ce TextView par rapport aux autres/au layout. Mais, je ne sais pas si le RelativeLayout peut répondre à ton besoin, notamment le passage à la ligne suivante si tu as plusieurs TextView. La question à te poser, c'est "comment le ferais-tu en XML ?", avant de pouvoir le transposer en code Java Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.