2010-03-04 3 views
1

travaille sur BB 9000question Scrolling avec le champ d'image bitmap, Blackberry

hey dans mon écran il y a un champ d'étiquette, en dessous il y a un champ bitmap et au-dessous qu'il ya un champ de liste

quand je défiler vers le bas tout repeindre est bien mais quand je défile du champ de la liste au champ Bitmap

alors mon image ne sera pas repeinte jusqu'à ce que j'atteigne au champ le plus haut de l'étiquette.

je suis incapable de comprendre pourquoi il arrive

le champ d'étiquette est définie sur focalisable pour certaines raisons ...

faisant champ bitmap focalisable ne pas résout aussi le problème

Code

:

LabelField lbl = new LabelField("Hello",Field.focussable) 

detail_img = Bitmap.getBitmapResource("container.png"); 
detail_img_field = new BitmapField(detail_img); 

reviewlist = new Review_List(my_vector); //Review_List is a class that fills value in list field 

reviewlistManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL |Manager.VERTICAL_SCROLLBAR) 
{    

       protected void paint(net.rim.device.api.ui.Graphics graphics) 
        { 
         super.paint(graphics); 
        } 

         protected boolean keyDown(int keycode, int status) 
         { 
          my_Screen.this.invalidate(); 
          return super.keyDown(keycode, status); 
         } 
         protected boolean keyUp(int keycode, int time) 
         { 
          my_Screen.this.invalidate(); 
          return super.keyUp(keycode, time); 
         } 

         protected boolean navigationMovement(int dx, int dy, int status, int time) 
         { 
          my_Screen.this.invalidate(); 
          return super.navigationMovement(dx, dy, status, time); 
         } 

         protected int moveFocus(int amount, int status, int time) 
         { 
          my_Screen.this.invalidate(); 
          return super.moveFocus(amount, status, time); 
         } 
         protected void onFocus(int direction) 
         { 
          my_Screen.this.invalidate(); 
          super.onFocus(direction); 
         } 
         protected void onUnfocus() 
         { 
          my_Screen.this.invalidate(); 
          super.onUnfocus(); 
         } 

       }; 

reviewlistManager.add(reviewlist); 
backgroundMannager.add(reviewlistManager); 
add(backgroundMannager); 

Répondre

1

yuppieeeeee

je suis la réponse

je viens juste de placer le champ bitmap dans un VerticalFieldManager, activé avec défilement vertical n mon problème se est résolu ...

Code:

rest_manager = new VerticalFieldManager(Manager.VERTICAL_SCROLL) 
      { 
      protected void paint(net.rim.device.api.ui.Graphics graphics) 
      { 
        int y = this.getVerticalScroll();          
            graphics.drawBitmap(0, y, rank_img.getWidth()+10, 
rank_img.getHeight(), rank_img, 0, 0); 

            super.paint(graphics); 
           } 
        } 
1

Est-ce sur un simulateur ou un périphérique réel? Parfois, les simulateurs ont des problèmes de rendu (comme ne pas redessiner une région qu'ils devraient avoir) alors que le vrai périphérique ne le fait pas.

+0

bien ce problème existe à la fois dans le simulateur et l'appareil – Swati

+0

Avez-vous essayé d'autres simulateurs ou appareils? Avez-vous un échantillon de code que vous pouvez publier? –

+0

Eh bien, j'ai essayé sur les simulateurs n périphériques comme - courbe 8300,8900, gras 900, tempête 9350 mais même problème se produit ... le code est trop grand pour être posté .... toute autre option, sinon je dois raccourcir en quelque sorte ... laissez-moi essayer ... – Swati

Questions connexes