2016-02-27 3 views
1

J'ai pris un conteneur vide et ajouter ImageViewer & Spanlabel. La même chose est de rendre dans la liste mais il me montre la sortie par défaut (que j'ai mis pour le test). J'essaie les deux sens dynamiquement et manuellement la sortie est toujours la même. Même moi j'essaie de travailler avec Multi-List mais il ne prend pas de rendu.image et résultat de rendu spanlabel par défaut dans la liste [CodenameOne]

Voici mon code:

ArrayList<Map<String, Object>> a = new ArrayList<Map<String, Object>>(); 
    HashMap<String, Object> m = new HashMap<String, Object>(); 
    Image image=fetchResourceFile().getImage("puzzle_icon.png"); 
    m.put("gSR_image", image); 
    m.put("gSR_label", "Puzzle"); 
    a.add(m); 
    cmp.setModel(new com.codename1.ui.list.DefaultListModel(a)); 

voir cette sortie

see this output

mon écran renderer

my renderer screen

sortie doit être mon image et Puzzle écrit en dessous .

Répondre

2

Il y a un problème dans spanlabel alors remplacez le spanlabel par textarea et unchecked editable qui fonctionne comme ci-dessus.

ArrayList<Map<String, Object>> a = new ArrayList<Map<String, Object>>(); 
HashMap<String, Object> m = new HashMap<String, Object>(); 
Image image=fetchResourceFile().getImage("puzzle_icon.png"); 
m.put("gSR_image", image); 
**m.put("gSR_textarea", "its working");** 
a.add(m); 
cmp.setModel(new com.codename1.ui.list.DefaultListModel(a)); 
+0

Une autre alternative mis en évidence ici: https://www.codenameone.com/manual/components.html#_generic_list_cell_renderer est de renommer le '' gSR_image' à gSR_imageFixed' qui empêchera le moteur de rendu d'essayer de chercher dans Les données. –

+0

Oublié d'ajouter que SpanLabel/Button ne fonctionne pas très bien dans un moteur de rendu. Vous devriez utiliser un TextArea et le styler en conséquence. Notez également que les composants ci-dessus vont ** ne pas ** se rompre dynamiquement comme ils le font dans un conteneur normal. –

+0

@ShaiAlmog votre solution fonctionne avec du texte mais pour l'image même ne fonctionne pas. J'ai essayé avec le mot 'Fixe 'ajouté à la fin mais ce travail avec l'étiquette pas' ImageViewer' et même force 'Label' pour choisir l'image qui est placée dans le moteur de rendu. Enfin la solution qui consiste à remplacer 'ImageViewer' par' Label' et le nom doit être sans mot 'Fixed' à la fin. 'Image image = fetchResourceFile(). GetImage (" puzzle_icon.png "); m.put ("gSR_image", image); 'ceci fonctionne parfaitement maintenant. –