2010-12-21 8 views
7

En la versión original de Gingerbread, el sobrerrecorrido se indica con un "flash" naranja. Sin embargo, las notas de la versión y algunos de los documentos de la API parecen indicar que existe compatibilidad con el comportamiento de sobrerrecorrido del exceso de estilo del iPhone. Por ejemplo, vea here. Sin embargo, no está claro cómo hacer que esto funcione. Simplemente establecer herramientas arrastrables con estos métodos no cambia el comportamiento. ¿Alguien sabe de una manera de hacer esto?¿Cómo obtener el sobrecrituramiento de estilo de iPhone en Android 2.3 (Gingerbread)?

Respuesta

8

Recientemente hice un par de publicaciones en el blog sobre esto. ¡Echar un vistazo!

http://jasonfry.co.uk/?id=26

http://jasonfry.co.uk/?id=27

Desde entonces he tenido un pensamiento, cuando se reemplaza el método overScrollBy, supongo que se puede medio uno de esos parámetros para obtener el fin de no seguir su dedo cuando se sobreescriba, pero solo siga la mitad de la distancia.

+0

la mitad del parámetro deltaY;) – jsonfry

+0

hay una manera de hacer esto en la versión de Android <2.3 – rOrlig

+0

En esta implementación cuando la vista de lista está sobrescritura y sigues tocándolo, rebota sin tocarlo, lo cual quiero evitar. ¿Tienes alguna idea sobre cómo hacer esto? – erikaD

1

No puedo responder esto por experiencia, pero en AbsListView, hay un método llamado setOverScrollMode() que puede ser útil. Además de eso, sin embargo, también encontré la clase OverScroller. Esto parece ser más de lo que estás buscando; Sin embargo, no puedo ayudar con los detalles de la implementación.

+0

Gracias por los comentarios. Miré esos métodos, pero no ayudan. El "overScrollMode" está activado por defecto, por lo que el método solo permite que se desactive. Al apagarlo solo evita que aparezca el flash naranja. La clase OverScroller parece administrar la notificación de comportamiento de sobredespliegue, pero no es responsable de ninguna representación en sí misma. – pents90

+0

Al analizarlo más a fondo, estoy casi seguro de que OverScroller maneja la mecánica real del overscrolling. La desventaja de la que me acabo de dar cuenta es que solo es Android 2.3+ (Gingerbread). Se ha agregado a la clase ScrollView, puedes ver algunas de las confirmaciones aquí: http://android.git.kernel.org/?p=platform/frameworks/base.git;a=history;f=core/java/ android/widget/ScrollView.java – kcoppock

+0

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/widget/OverScroller.java;h = f48eb89e596c52e09186941501284fc64a08db56; hb = 737e8fe2c7ce167bc68ad779160488007a5e0b1d Aquí está el código de OverScroll real si está interesado. Desplácese hacia abajo hasta la clase MagneticOverScroller para ver las matemáticas que hay detrás. (Y estaba equivocado, lo sacaron como una clase separada de ScrollView, parece) – kcoppock

Cuestiones relacionadas