Comment faire pour centrer une fenêtre/fenêtre de dialogue dans GWT?
J'ai une liste d'enregistrements, chaque enregistrement a un bouton qui ouvre la fenêtre de réglage. Aussi, j'ai des préférences, avec beaucoup de logique parties et chaque partie a quelques enregistrements avec un bouton.
Donc, quand je clique sur un bouton, une fenêtre de dialogue s'affiche, mais si ce bouton est quelque part dans le bas de la page (que ce soit de 300 enregistrements avec le bouton), ma fenêtre de dialogue s'affiche sur la partie supérieure. Résultat: j'ai pour défiler vers le haut afin de trouver cette fenêtre (parfois, il apparaît derrière navigateur frontières).
Ou imaginez que vous configurez quelque chose et faites défiler la page vers le bas de remplissage de chaque option, à la fin vous permet de sauvegarder votre configuration, mais certains champs ont été remplis de manière incorrecte et d'avertissement fenêtre contextuelle s'affiche... quelque part sur la page, mais pas à proximité de votre pointeur ou même pas au milieu de votre page en cours.
Toutes mes fenêtres de dialogue sont héritées de Boite, j'ai donc utiliser super.show() et super.centre(), mais il ne fonctionne pas comme je veux.
Petite info en plus: certaines fenêtres de dialogue de recevoir des données depuis le serveur, et lorsque toutes les données sont reçues le reste de la fenêtre est affichée. Je crois que cela peut parfois causer de la fenêtre apparaissent dans un mauvais endroit.
OriginalL'auteur Dragon | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
Vous êtes en droit de modifier le contenu de la boîte de dialogue après c'est centrée fera apparaître uncentered. Pour résoudre ce problème, j'ai appelé le centre d'après le contenu est chargé. Vous pouvez afficher un chargement spinner ou quelque chose dans le temps.
Dans certains cas, la taille de la fenêtre, vous ajoutée ne peut pas être calculée immédiatement. Malheureusement, la meilleure façon que j'ai trouvée pour traiter ce fut pour ajouter un widget, puis exécutez
(case non cochée code)
Cela a fini par être tellement commun que j'ai ajouté une méthode appelée
scheduleCenter
à ma Boite de classe.Vous pouvez également centre d'appel plus d'une fois, à chaque fois ré-exécuter le centrage des calculs. Cela provoque un peu de secousses. Si vous ne voulez pas de secousses autour de vous, vous devez définir la taille de l'intérieur du widget explicitement:
Vous pouvez aussi appeler myWidgetWhichWillLoadDataLater.setHeight("300px"), etc.
OriginalL'auteur Riley Lark
setWidgetBottomHeight() méthode pour positionner exactement.
DialogBox
à un groupe, à moins que vous vraiment savez ce que vous faites. Dans 99.999% des cas, c'est une erreur. Aussi, vous n'avez pas besoin d'appelershow()
si vous appelezcenter()
.erreur, vous s'il vous plaît modifier cela.
Hm, quand j'centre d'appels avant le spectacle, aucune boîte de dialogue n'apparaît. Je pense que je dois jouer avec spectacle et du centre, hm.
découvrez mon édité réponse...
Je vais essayer. Mais j'ai une question, à l'avance, si cela fonctionne correctement pour le cas lorsque des données sont reçues à partir du serveur et le reste de la fenêtre de dialogue est construit en fonction de ces données?
OriginalL'auteur Dipak
là vous allez 🙂
Le code est auto-explicatif.
votre commentaire n'explique pas la boîte.(centre), et le code ne compile pas.
OriginalL'auteur Abhijith Nagaraja