J'essaie d'utiliser un pager de vue pour faire une galerie. Néanmoins c'est toujours la vue à la position 1 qui est mise à jour alors que j'essaye de mettre à jour la page actuelle (0 par défaut). J'ai d'abord créé une vue qui va être gonflée par le pager. Cette vue est composée de 4 images et 4 textview.View pager ne gonfle pas la bonne page
Ensuite, j'ai créé un adaptateur pour le téléavertisseur:
public class LivePagerAdapter extends PagerAdapter {
private CameraList cameras = null;
public LivePagerAdapter(CameraList cams)
{
this.cameras = cams;
}
@Override
public int getCount() {
return this.cameras.size() /4; // 4 imageview in a page
}
public void setCameras(CameraList cams)
{
this.cameras = cams;
}
@Override
public Object instantiateItem(View container, int position) {
LayoutInflater inflater = LayoutInflater.from(container.getContext());
View view = inflater.inflate(R.layout.pager,null);
((ViewPager) container).addView(view,0);
return view;
}
}
Enfin dans mon activité je suis instancier téléavertisseur comme ceci:
adapter = new LivePagerAdapter(this.listeCamera);
pager = (ViewPager) findViewById(R.id.camspager);
pager.setAdapter(adapter);
pager.setCurrentItem(0);
Après que je suis un initialisant tableau avec mon 4 imageview:
tabImageView.add((ImageView) findViewById(R.id.cam1)); //Imageview located in the view loaded by the pager
tabImageView.add((ImageView) findViewById(R.id.cam2));
tabImageView.add((ImageView) findViewById(R.id.cam3));
tabImageView.add((ImageView) findViewById(R.id.cam4));
Et si nécessaire, j'ajoute une image dans l'image.
Cela semble fonctionner sauf que je demande au pager de commencer à la position 0 et c'est la vue de la position 1 qui est mise à jour avec mes images.
Quand j'utilise findViewById(somethingInflatedByThePager)
j'ai besoin que ce soit la page actuelle, comment puis-je faire cela?
simple que cela, merci! – grunk
Bon à l'oreille que cela vous aide. N'oubliez pas que si vous utilisez eclipse, lorsque vous placez votre curseur sur une méthode, vous pouvez avoir une description rapide comme: void android.view.ViewGroup.addView (Voir l'enfant, index int) public void addView (Voir l'enfant , int index) Depuis: API Niveau 1 Ajoute une vue enfant. Si aucun paramètre de disposition n'est déjà défini sur l'enfant, les paramètres par défaut de ce ViewGroup sont définis sur l'enfant. Paramètres ** enfant \t l'affichage enfant à ajouter ** ** index \t la position à laquelle ajouter l'enfant ** –