2011-11-03 9 views
5

He encontrado un error interesante en el visor de páginas de Android (r4 de la ACL).Android View Pager arroja el camino equivocado

El rastreador de velocidad arrojará el buscapersonas de forma incorrecta al desplazar el dedo demasiado rápido/fuera del borde de la pantalla en dispositivos más antiguos o lentos.

Puedo reproducir en Galaxy Tab original, HTC Desire, Nexus One, San Francisco, HTC Hero.

Abre Google +, mercado o algo así con una implementación de paginador de vista bastante subestructural.

Si vas a la página más a la izquierda, a continuación, tire suavemente el dedo sobre el borde derecho de la pantalla se puede obtener el punto de vista de un localizador para saltar a la derecha (en sentido contrario a la dirección de arrastre).

Necesito investigar más, pero parece que el rastreador de velocidad no puede mantenerse al día en dispositivos más lentos. Por supuesto, esto puede hacer que el buscapersonas salte cuando se desplaza rápidamente de izquierda a derecha. prueba en el nuevo mercado (3.3+) para ir de un lado a otro y ver los resultados molestos!

Cualquier idea sobre soluciones extendiendo la clase .. Estoy pensando que la pantalla puede proporcionar resultados extraños cuando hay mucha actividad y quizás falten algunos MotionEvents, ya que me resulta casi imposible replicar en dispositivos más nuevos. (Nexus S, Samsung GSII, Sensation).

EDIT: Este problema se ha resuelto a partir del ACL v6

Gracias, Chris

Respuesta

5

creo que la versión de ViewPager que salió con R4 tenía algunos problemas como éste, que desde entonces han sido fijos . La próxima versión debería llegar pronto. Este es un comportamiento que probablemente refinaremos con el tiempo, además de las correcciones que se avecinan.

Si tiene curiosidad y desea editar la fuente incluida con el paquete de la biblioteca de soporte, creo que la solución era comenzar a pasar MotionEvents a VelocityTracker durante onInterceptTouchEvent desde el evento de inicio inicial en lugar de solo después de la intercepción ocurrida en onTouchEvent. Esto le da a VelocityTracker más datos para trabajar. Alternativamente, puedes experimentar con otros factores desencadenantes.

+0

Pensé que ese era el problema, estaba pensando en buscar si el rastreador de velocidad salta al soltarlo. Lamentablemente, no tengo tiempo en este momento para analizarlo. –

+0

¿También tiene alguna idea sobre el calendario para las correcciones? –

+0

Nada más específico que, "muy pronto ahora", lo siento. :) – adamp

Cuestiones relacionadas