Copie ma réponse d'ici: How to use ScrollPanel with relative size
=================================== D'abord, ScrollPanel est quelque chose qui n'agit pas comme un autre widget pour la raison que je ne fais pas. Je sais pourquoi. Impossible de définir la taille relative (50%), et si je lui donne du style, il est perdu quelque part et ne peut pas être trouvé à partir de la page.
Ma solution consiste à utiliser un ResizeLayoutPanel. Andrei a suggéré d'utiliser quelque chose ProvidesResize mais nécessite que la chaîne de redimensionnement fournir/requérir reste ininterrompue, ce qui peut être très délicat. J'ai trouvé ce ResizeLayoutPanel "ProvidesResize à son un enfant, mais ne nécessite pas Resize", ce qui est le candidat idéal pour le panneau racine de mon composite. Ensuite, je viens d'étendre le ScrollPanel pour se redimensionner dans la méthode "onResize" chaque fois qu'il est appelé par le parent ResizeLayoutPanel.
Toujours pas de réponse à ma première question: par ScrollPanel se comportent comme ça en premier lieu? J'ai essayé de trouver la réponse dans son code source mais je n'ai pas réussi (même si je n'ai pas passé assez de temps à étudier le code source).
public class My100PctScrollPanel extends ScrollPanel {
@Override
public void onResize() {
// Window.alert("on resize");
this.setWidth(this.getParent().getOffsetWidth()+"px");
this.setHeight(this.getParent().getOffsetHeight()+"px");
super.onResize();
}
}
........
compositeRoot = new ResizeLayoutPanel();
........
scrollPanel = new My100PctScrollPanel();
compositeRoot.clear();
compositeRoot.add(scrollPanel);
pouvez-vous afficher l'extrait de code le plus simple qui reproduira le problème? vous avez plus de chances d'obtenir de l'aide si nous savons exactement ce que vous essayez de faire. –
Voir cette question (et ma réponse): http://stackoverflow.com/questions/41110336/how-to-use-scrollpanel-with-relative-size – Adam