2010-05-16 3 views
0

Bonjour camarade Androiders ...Modification de la taille du contenu HorizontalScrollView lorsque le téléphone est tourné en surchargeant onConfigurationChanged

J'ai un problème avec le contenu de redimensionnement dans un HorizontalScrollView lorsque le téléphone est mis en rotation. Je substitue onConfigurationChanged dans mon activité contenant le HorizontalScrollView, puisque je veux gérer le redimensionnement moi-même. Cependant, j'ai beaucoup de mal à trouver où je devrais mettre le redimensionnement du contenu. Le HorizontalScrollView lui-même a FILL_PARENT comme largeur et une hauteur fixe. L'idée est qu'il devrait toujours remplir l'écran en largeur, tout en ayant plusieurs cellules de contenu, chacune aussi large que HorizontalScrollView lui-même.

Le contenu de mon HorizontalScrollView se compose d'un LinearLayout (appelons-le wrapperLayout) avec plusieurs LinearLayouts à l'intérieur. Lorsque le téléphone tourne, je veux simplement changer la largeur de tous les LinearLayouts dans le wrapperLayout. C'est facile à faire et fonctionne très bien lorsque je teste le code de redimensionnement en le mettant dans onInterceptTouchEvent (MotionEvent ev), c'est-à-dire que les vues sont redimensionnées comme elles sont censées quand je touche HorizontalScrollView.

La difficulté apparaît lorsque j'essaie de trouver un bon emplacement pour exécuter le code de redimensionnement, afin que le redimensionnement se fasse automatiquement lorsque le téléphone est pivoté. J'ai essayé toutes les combinaisons possibles de requestLayout, onSizeChanged, onLayout, onConfigurationChanged et quelques autres et en faisant varier leurs appels à super (le cas échéant) avant et après le code de redimensionnement. Je ne peux pas faire ce travail (les vues ne sont pas redimensionnées même si le code de redimensionnement est exécuté) et c'est vraiment frustrant. J'ai fait beaucoup de journalisation pour m'assurer que l'HorizonalScrollView a vraiment changé de largeur avant d'appeler mon code de redimensionnement mais en vain.

Quelqu'un peut-il savoir ce qui se passe? Quelles méthodes sont appelées et dans quel ordre lorsque je gère le onConfigurationChanged par moi-même comme ceci?

Merci à l'avance

Répondre

-1

Y at-il une raison que vous n'utilisez pas les appels d'orientation du viewController. à savoir

// Override to allow orientations other than the default portrait orientation. 

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {

Je pense qu'il pourrait être plus facile.

+0

Désolé, il aurait fallu clarifier: c'est en utilisant Android :) –

Questions connexes