2011-03-29 1 views
0

Je construis une petite application Blackberry dans laquelle je dois ajouter un champ editField et Bitmap Image les uns après les autres dans un seul gestionnaire de champ Horiziontal. Le code fonctionne bien quand Je place Bitmap Image avant le EditField mais quand je place l'Image après le EditField, Son ne fonctionne pas correctement.Modifier le champ et l'image bitmap dans le même gestionnaire de champs horizontaux dans Blackberry

Voici le code que j'utilise:

hfm1=new HorizontalFieldManager(); 

    Bitmap image = Bitmap.getBitmapResource("search_icon.png"); 
     BitmapField imageButton = new BitmapField(image, BitmapField.FOCUSABLE) 
     { 

        protected boolean navigationClick(int status, int time) 
        { 
          // This is method will invoke after clicking the image 
          // System.out.println("Image Clicked"); 
         SearchButtonClick(); 
          return true; 
        } 
     }; 


     searchEdit=new EditField("",_DEFAULT_FIELD_TXT, 50, EditField.FIELD_LEFT|EditField.NO_NEWLINE){ 

      public void layout(int width, int height) 
      { 
        Font font = getFont(); 
        int _fieldHeight = font.getHeight()+5; 
        //int _fieldWidth = (getWidth()-100); 
        setExtent(300, _fieldHeight); 
        super.layout(width,height); 

       } 




     }; 

     add(new SeparatorField()); 
     searchEdit.setFont(MainAppScreen.fontTitle); 
     searchEdit.setMargin(1, 2,1,1); 
     //hfm1.setMargin(2,5,2,5); 

     hfm1.add(searchEdit); 
     hfm1.add(imageButton); 

     add(hfm1); 

S'il vous plaît suggérer. Suggère également un moyen d'aligner correctement les composants dans le gestionnaire de disposition.

+0

il doit y avoir un problème d'alignement avec votre code c'est pourquoi il ne fonctionne pas correctement.Essayez d'utiliser la propriété allignment de mise en page ou personnaliser votre propre disposition. – ani

Répondre

1

Here's a blog that talks about table layout. Je pense que c'est quelque chose que vous devriez considérer. Cela vous donne un meilleur contrôle sur votre mise en page. En ce qui concerne votre code ci-dessus, je suppose qu'il n'y a pas assez d'espace à droite de la zone de texte pour afficher le bitmap. Je pense que si vous commencez avec le bitmap, il montrera le bitmap entier et autant de champ de texte que possible. Si vous commencez par le champ de texte, il affiche le champ entier et n'a pas de place pour montrer le bitmap (il ne montrera peut-être pas un bitmap partiel?)

Je crois que vous devrez réduire vos largeurs.

+0

Selon mes besoins, je dois ajouter EditField avant le Bitmap dans le gestionnaire de champs Horizontal.Can vous donnez du code si possible .... –

+0

Regardez le blog et utilisez le gestionnaire de table, ou google gestionnaires de tables pour BB. C'est probablement la meilleure façon de définir des largeurs fixes de colonnes pour vous assurer que vous obtenez les deux champs – taylonr

+0

ok taylonr J'essaie d'utiliser le gestionnaire de table –

Questions connexes