Android: Informer le Scrollview qu'il est enfant, le changement de taille: comment faire?

Quand je agrandir la taille du contenu d'un scrollview, la scrollview prend un certain temps pour "faire connaissance" avec ce changement de taille de l'enfant. Comment puis-je commander la ScrollView pour vérifier qu'il est enfant tout de suite?

J'ai une ImageView dans un LinearLayout dans un ScrollView.

Dans mon ScaleListener.onScale, j'ai changer la taille de mon LinearLayout. J'ai ensuite essayer de l'ordre d'un rouleau sur la scrollview. Dans le ScaleListener.onScale:

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) imageView.getLayoutParams();
params.width = (int) (startX * scaleFactor);
params.height = (int) (startY * scaleFactor);
imageView.setLayoutParams(params);

(...)

scrollView.scrollBy(scrollX, scrollY);

Cependant, pas de défilement se produit lorsque la situation avant la mise à l'échelle de défilement n'était pas possible, parce que la vue était trop petite pour faire défiler. Après la setLayoutParams, la vue doit être plus grand, mais pas de défilement se produit parce que le scrollview pense que l'enfant est encore petit.

Lorsqu'un de fes ms plus tard le onScroll est appelée de nouveau, il ne défilement fine, c'est en quelque sorte découvert que l'enfant est plus grand et défilement.

Comment puis-je en informer le scrollview immédiatement, que la taille de l'enfant a changé? De sorte que scrollBy va travailler après setLayoutParams sur son enfant?

OriginalL'auteur Frank | 2012-04-03