2011-07-25 1 views
0

Je construis une application blackberry pour BB Curve.J'ai un verticalfieldmanager où j'ajoute un bouton, j'ai défini son étendue comme 320 * 22.J'ai un horizontalfieldmanager où j'ajoute deux editfield et son ampleur est 296 * 22.Enfin, j'ajoute ces deux gestionnaires dans un autre gestionnaire de champs verticaux dont j'ai défini l'étendue comme 320 * 240.j'utilise setBackgroundBitmap (Background bg) pour définir l'image d'arrière-plan.Mais quand je définis l'étendue du verticalfieldmanager principal, seul le image de fond est définie, mais les deux autres gestionnaires où j'ai ajouté editfield et le bouton ne sont pas visibles.Mais quand je ne définissez pas l'étendue du gestionnaire vertical principal, que le champ editfield et le bouton sont ajoutés à l'écran, mais l'image de fond est Donc, où je me trompe?Blackberry fieldmanager issues

+1

Seriez-vous en mesure de poster quelques-uns des codes pertinents pour nous de jeter un oeil? En outre, regardez la console et assurez-vous que vous ne voyez pas les messages qui disent "espace insuffisant à la mise en page" ou quelque chose de similaire à cela. – jprofitt

+0

@jprofitt Merci monsieur pour répondre.BTW Je vois ce message à la console "espace insuffisant à la mise en page". – ajay

Répondre

1

Il semblerait que vous allez devoir jouer avec vos extensions pour vous assurer que vous avez donné assez de place aux gestionnaires enfants pour mettre en forme les champs. Dans votre sublayout(int width, int height) des gestionnaires, vérifiez quelles dimensions lui sont transmises. Si elles sont inférieures à l'espace dont il a besoin pour la mise en forme, il ne pourra pas afficher ses champs.

+0

Merci monsieur pour votre réponse.Mon sous-jacent est comme ceci – ajay

+0

HorizontalFieldManager hfm = new HorizontalFieldManager (style) { protégé void sublayout (int largeur, int hauteur) { Sous-couche (wd, ht); setExtent (wd, ht); } peinture de vides publics (Graphiques g) { \t \t si (couleur! = 0) g.setBackgroundColor (couleur); g.clear(); invalide(); super.paint (g); } }; – ajay

+0

donc quand j'utilise des champs super.sublayout sont affichés mais j'obtiens l'avertissement, mais quand j'utilise seulement le sous-licenciement je n'obtiens aucun avertissement mais les champs ne sont pas non plus affichés – ajay