2011-07-25 1 views
0

Je crée une application qui a un Gallery, et ce Gallery a un nombre différent de vues en fonction de l'orientation. De manière générale, certaines images larges sont des doubles pages; en tant que tels, ils prennent un View en paysage, mais ils sont divisés en deux vues (une par page) en portrait.L'utilisation de Gallery.setSelection (position) pendant onCreate

J'ai un système qui se souvient quelle "page" est sélectionnée et la convertit en une position qui peut être envoyée à Gallery.setSelection(position). J'appelle cela à partir de Activity.onCreate(), en utilisant Activity.onRetainNonConfigurationInstance() pour passer l'objet en conservant, entre autres, les informations à l'application. Malheureusement Gallery semble alors se réinitialiser à sa valeur de position précédente après onCreate finit.

Puis-je supprimer cela? Si non, quand dois-je appeler ma méthode Gallery.setSelection(position)?

+0

Je l'ai mis au point - il est nécessaire d'appeler onResume(), APRÈS l'appel à super.onResume(), qui est l'endroit où la galerie est disposée. –

+0

Il peut y avoir des subtilités que j'ai manqué et s'il y en a, s'il vous plaît les signaler :) –

+0

Salut Andrew Wyld avez-vous la solution parfaite pour setposion of gallary view? – amity

Répondre

0

Je l'ai élaboré.

Lorsque l'orientation change, Activity.onCreate() est appelée et tout est gonflé. En surchargeant Activity.onResume() et en appelant Gallery.setSelection (position) avec la valeur souhaitée après super.onResume(), il est possible d'obtenir le comportement correct; sans doute la sélection de la galerie est définie à sa valeur précédente soit pendant super.onResume() ou entre Activity.onCreate() et Activity.onResume().

Questions connexes