IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Initialiser un fragmentPagerAdapter à une position précise


Sujet :

Android

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Initialiser un fragmentPagerAdapter à une position précise
    Bonjour,

    J'essaye depuis un moment déjà de setter la position de mon FragmentPagerAdapter quand je l'instancie.

    Je m'explique : j'ai une Activity avec une gridview qui montre une miniature de toutes les images que j'ai récupéré dans un album facebook. J'ai aussi un slider (FragmentPagerAdapter) qui m'affiche toutes ces images et où je peux slider d'une image à l'autre. Jusqu'ici tout fonctionne parfaitement.
    Ce que j'aimerais bien faire maintenant c'est que quand je clique sur une image dans le gridview, cela m'affiche mon slider à la position de l'image sur laquelle j'ai cliqué. Pour le moment quand je fais ça ça m'affiche mon slider depuis la première image.
    Je sais comment récupéré la position dans mon gridview et l'envoyé à mon slider. Par contre ce que je ne sais pas c'est comment setter cette position dans le fragmentPagerAdapter pour qu'il m'instancie mon slider et qu'il m'envoie directement à la bonne position, de façon à si je slide vers la droite j'ai ma photo précédente et si je slide vers la gauche j'ai ma photo suivante.

    Ici le code de mon FragmentPagerAdapter et du Fragment qui contient les photo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
     
    		private int count;
    		public SectionsPagerAdapter(FragmentManager fm) {
    			super(fm);
    			count = 1;
    		}
     
    		@Override
    		public Fragment getItem(int position) {
    			return SectionFragment.newInstance(position, urlMap, getApplicationContext());
    		}
     
    		@Override
    		public int getCount() {
    			return count;
    		}
     
    		public void setCount(int _count) {
    			count = _count;
    		}
    	}
     
     
    	public static class SectionFragment extends Fragment {
     
    		static String url;
    		static SparseArray<String> urlMap;
    		static Context context;
    		int mNum;
     
    		static public SectionFragment newInstance(int pos, SparseArray<String>  _urlMap, Context _context)
    		{
    			SectionFragment f = new SectionFragment();
    			urlMap = _urlMap;
    			context = _context;
    			if (urlMap != null && pos <= urlMap.size())
    				url = urlMap.get(pos);
     
    			Bundle args = new Bundle();
    	        	args.putInt("num", pos);
            		f.setArguments(args);
     
    			return (f);
    		}
     
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                mNum = getArguments() != null ? getArguments().getInt("num") : 1;
            }
     
    		@Override
    		public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    			View rootView = inflater.inflate(R.layout.fragment_main_dummy, container, false);
    			ImageView mImageView = (ImageView) rootView.findViewById(R.id.section_label);
    			int loader = R.drawable.loader; 
     
    			ImageLoader imgLoader = new ImageLoader(context);
     
    			imgLoader.DisplayImage(urlMap.get(mNum), loader, mImageView);
    			return rootView;
    		}
    	}
    Merci d'avance pour votre aide !

    Edit: PS: Si vous avez des idées pour faire la même chose mais d'une autre manière je suis preneur aussi.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Points : 161
    Points
    161
    Par défaut
    Tu peux aussi utiliser un ViewPager pour faire"slider" tes photos et en fonction de la position tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyViewPager.setCurrentItem(maposition);

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de votre réponse, je vais tester ça dès que je peux ! Je vous tiens au courant.

Discussions similaires

  1. Afficher une div à une position précise
    Par codefalse dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/01/2009, 23h50
  2. Réponses: 6
    Dernier message: 11/02/2008, 21h33
  3. Réponses: 1
    Dernier message: 20/04/2007, 14h10
  4. ajout d'une colonne à une position précise!
    Par kanko dans le forum Oracle
    Réponses: 5
    Dernier message: 27/03/2006, 22h35
  5. aller à une position précise dans un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo