Prévenir SWT ScrolledComposite de manger une partie de ses enfants
Qu'ai-je fait de mal?
Voici un extrait de mon code:
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout());
ScrolledComposite scrollBox = new ScrolledComposite(parent, SWT.V_SCROLL);
scrollBox.setExpandHorizontal(true);
mParent = new Composite(scrollBox, SWT.NONE);
scrollBox.setContent(mParent);
FormLayout layout = new FormLayout();
mParent.setLayout(layout);
//Adds a bunch of controls here
mParent.layout();
mParent.setSize(mParent.computeSize(SWT.DEFAULT, SWT.DEFAULT, true));
}
...mais il clips le dernier bouton:
bigbrother82: cela ne fonctionne pas.
SCdF: j'ai essayé ta suggestion, et maintenant les barres de défilement sont partis. J'ai besoin de travailler un peu plus sur qui.
Hey Jeremy, je viens de remarquer que maintenant que ma suggestion n'a pas fonctionné. Avez-vous eu de la chance avec cette?
(btw, si vous avez des commentaires sur de ma réponse, il sera montré dans mes réponses et je ne vais pas le manquer)
(btw, si vous avez des commentaires sur de ma réponse, il sera montré dans mes réponses et je ne vais pas le manquer)
OriginalL'auteur Jeremy | 2008-08-29
Vous devez vous connecter pour publier un commentaire.
C'est un obstacle courant lors de l'utilisation de
ScrolledComposite
. Quand il est si petit que la barre de défilement doit être prouvé, le client contrôle a pour réduire horizontalement pour faire de la place pour la barre de défilement. Cela a pour effet secondaire de faire quelques étiquettes de retour à la ligne, qui est passé de l'contrôles suivants plus bas, ce qui a augmenté la hauteur minimale requise par le contenu composite.Vous avez besoin d'écouter pour la largeur des modifications sur le contenu composite (
mParent
), calculer la hauteur minimale de nouveau donné le nouveau contenu de la largeur, et d'appelersetMinHeight()
sur le défilé composite avec la nouvelle hauteur.À l'écoute pour les changements de taille, notez que nous ignorons tout de redimensionner les événements où la largeur reste la même. C'est parce que les changements dans la hauteur du contenu n'affectent pas le minimum hauteur du contenu, plus long que la largeur est la même.
OriginalL'auteur qualidafial
Si je ne me trompe pas, vous devez remplacer le
et
de sorte que vous avez:
OriginalL'auteur Jacob Schoen
N'avez-vous pas besoin de recalculer la taille de la scrollBox après la mise en page?
OriginalL'auteur SCdF
Essayer de définir .setMinWidth et .setMinHeight sur le ScrolledComposite une fois la mise en page a été faite, en passant à la taille de la principale composite.
OriginalL'auteur alexmcchessers