2010-09-17 2 views
6

J'ai un ScrollView qui a deux images cachées, une en haut et une en bas. Entre les deux, il y a un tas de contenu visible. Ce que je dois faire est de masquer ces images par défaut, mais lorsque vous faites défiler vers le haut ou vers le bas, vous pouvez les voir pendant que vous faites défiler. Mais dès que vous arrêtez de défiler, il devrait rebondir sur la zone visible afin que les images cachées ne soient pas visibles.Android: détecter lorsque ScrollView a fini de défiler et de rebondir?

Fondamentalement, j'essaie d'imiter la fonction de défilement de rebond de l'UIScrollView iphone. J'ai mon ScrollView toute la configuration et je fais un défilement au début afin de cacher l'image cachée supérieure. Maintenant tout ce que je dois faire est de détecter quand un défilement est terminé, déterminer la position Y, et vérifier si une image cachée est affichée. Si c'est le cas, je voudrais simplement faire défiler la vue par programmation pour que l'image cachée soit cachée.

J'espère que tout cela a du sens.

De toute façon, je sais comment faire défiler un ScrollView par programmation. Maintenant, ce dont j'ai besoin, c'est d'une sorte de rappel pour me dire quand ScrollView a fini de défiler et aussi pour obtenir la position 'Y' actuelle de ScrollView. Existe-t-il de telles méthodes que je pourrais utiliser? J'ai regardé les documents ScrollView mais rien ne m'a échappé. Je ne suis toujours pas très familier avec les schémas de nommage Android alors peut-être que j'ai manqué quelque chose d'évident quelque part.

De toute façon, toute aide serait appréciée ici. À votre santé.

Répondre

4

Vous pouvez utiliser un OnTouchListener pour détecter lorsque l'utilisateur appuie sur/relâche la liste.

Vous pouvez également utiliser la méthode onScrollStateChanged de détecter des changements dans la SCROLL_STATE classe OnScrollListener (très probablement en conjonction avec un écouteur tactile) - lorsque la liste a cessé de faire défiler l'état changera d'un état qui est pasSCROLL_STATE_IDLE à SCROLL_STATE_IDLE.

Alternativement, si vous utilisez 2.3 ou supérieur, vous pouvez utiliser un OverScroller pour obtenir l'effet désiré (voir Modifying Android OverScroll pour savoir comment changer l'effet de défilement sur un iPhone comme celui-ci).

+13

Il n'y a pas OnScrollListener pour ScrollView – Frank

Questions connexes