Par défaut, il semble que lorsqu'un objet de la galerie est cliqué, la galerie défile automatiquement pour centrer l'élément sur lequel vous avez cliqué. Comment puis-je remplacer ce comportement? Je ne veux pas que la galerie défile au centre lorsque je clique dessus, je veux qu'elle reste là où elle est.android gallery pas de défilement Cliquez sur
Répondre
Je pense que cela est une bonne solution:
@Override
public boolean onSingleTapUp(final MotionEvent e) {
boolean handled = super.onSingleTapUp(e);
onDown(e);
return handled;
}
La galerie a une méthode pour l'ignorer.
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(HelloGallery.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
Je ne l'ai pas essayé ... mais vous pouvez essayer ce qui suit:
Dans le onItemClickListener.onItemClick()
, déterminer la position sélectionnée à l'aide Gallery.getSelectedItemPosition()
puis définir la position à l'aide Gallery.setSelection(int position)
. Je ne sais pas si cela marchera ou non, mais vous pouvez essayer. Il est également possible d'utiliser le OnItemSelectedListener
.
Je ne ai jamais utilisé une galerie avant (en fait, je devais regarder une vue sur youtube pour voir son effet visuel d'abord ;-)
Alors je fouillai dans le code source de la galerie et il me semble qu'ils ont attaché la sélection est assez lourde pour le positionnement, donc vous devrez passer outre la classe et faire du code lourd, peut-être même de la réflexion, pour atteindre votre objectif. Je ne peux même pas dire si tu réussirais.
Ce n'est pas une solution, mais un soupçon ce que vous devriez vous attendre si vous voulez réaliser que ;-)
Je reviens juste à ça. d'après ce que je peux trouver, ce que vous avez dit est correct. Je vais devoir essayer de copier le code source de la galerie et l'implémenter comme ma propre classe de galerie. Si quelqu'un a une lecture recommandée sur ce sujet ce serait génial. Merci. – drod
Je pense que c'est ce que vous recherchez.
d'abord créer une classe qui étend de la galerie, puis passer outre la méthode onSingleTapUp:
@Override
public boolean onSingleTapUp(final MotionEvent e) {
final OnItemClickListener listener = getOnItemClickListener();
final View selectedView = getSelectedView();
final float tapX = e.getRawX();
final float tapY = e.getRawY();
if ((selectedView != null) && (listener != null)
&& (tapX >= selectedView.getLeft()) && (tapX <= selectedView.getRight())
&& (tapY >= selectedView.getTop()) && (tapY <= selectedView.getBottom())) {
final int selectedPosition = getSelectedItemPosition();
listener.onItemClick(this, selectedView, selectedPosition, selectedPosition);
}
return true;
}
Malheureusement, je ne semble pas avoir la possibilité de commenter les posts des autres, mais pour ceux qui ont trouvé cette question mais qui avaient des problèmes, notez que si vous créez une galerie personnalisée qui remplace la méthode onSingleTap
(comme suggéré par Ohgema), vous besoin de remplacer le constructor that takes a Context
and an AttributeSet
.
- 1. Android Gallery Widget onScrollStateChanged
- 2. Android Gallery - Remplacer Bitmap dans ImageView après le défilement arrêté
- 3. AutoScrolling sur Slider Gallery
- 4. Personnaliser Android Gallery
- 5. Open Image Gallery Android
- 6. Comment accéder à Music Gallery sur Android?
- 7. défilement ListView sur le bouton cliquez sur
- 8. Défilement pour Div on Cliquez sur
- 9. WebView and Gallery dans android
- 10. Fenêtre de défilement automatique Slickgrid sur la grille cliquez sur
- 11. WebView in Gallery arrêtant les événements de défilement/tactile
- 12. Android Gallery 3D ne renvoie pas de bitmaps dans Honeycomb
- 13. Listview cliquez sur Android
- 14. Cliquez sur l'image de GalleryView android
- 15. Problème Android TableLayout et Gallery
- 16. Cliquez sur ListView sur Android
- 17. Android Gallery Image sélectionnée Taille
- 18. Comment gérer les positions dans Gallery android?
- 19. Android Java Gallery d'erreur de mémoire
- 20. Android Gallery View - Comment configurer la ressource?
- 21. Défilement imbriqué sur Android
- 22. Android AlertDialog bouton cliquez sur
- 23. Cliquez sur l'élément cliqué: Android
- 24. Android - Activités de défilement horizontales
- 25. Android: défilement direct/affichage d'une page particulière dans ViewPager sur le bouton cliquez sur
- 26. Android cliquez sur le son
- 27. Android - Simuler Accueil cliquez sur
- 28. Override cliquez sur android prefenceactivity
- 29. Réclamation sur Android Cliquez ici
- 30. erreur Android sur Asynchronous Cliquez
J'ai finalement retesté cela. Cela fonctionne très bien, merci d'avoir renoncé à ce plaisir que j'ai vérifié. – drod
ça marche vraiment !! – androidGuy