Pregunta

Descripción
Estoy usando un listfield clase para mostrar un conjunto de información vertical.Cada fila de la que listfield toma 2/5 de la de la altura de la pantalla.

Como tal, al desplazarse al siguiente elemento (especialmente cuando se muestra un elemento parcialmente oscurecida por las limitaciones de la altura de la pantalla), el desplazamiento total/foco de acción es muy inestable.

Me gustaría solucionar este nerviosismo por la implementación de desplazamiento suave entre desplazamiento/focus acciones.Es esto posible con el ListField clase?

Ejemplo
Abajo es una captura de pantalla mostrando el tema en cuestión.

alt text
(fuente: perkmobile.com)

Una vez que el usuario se desplaza hacia abajo a ListFieldTHREE fila, esta fila es "desplazado" a la vista en un muy inestable manera, no hay desplazamiento suave.Yo sé hacer la fila altura menor para mitigar este problema, pero yo no quiere ir por ese camino.

Pregunta Principal
¿Cómo puedo hacer el desplazamiento suave en un ListField?

¿Fue útil?

Solución

Si se asume que desea que el comportamiento que el usuario se desplaza hacia abajo 1 'clic' de la rueda de desplazamiento, y con el orden resaltarán, pero en vez de un desplazamiento inmediato saltan a obtener un desplazamiento suave para que el nuevo elemento visible (como en Google de Aplicación gmail para BlackBerry), vas a tener que rodar su propio componente.

La idea básica es la subclase VerticalFieldManager, a continuación, en un rollo (clave fuera el método moveFocus) que tiene una actualización de hilo separado una posición variables vertical, e invalidar el gerente varias veces.

El hilo es necesaria porque si se piensa en ello está conduciendo una animación fuera de un evento de usuario - el desplazamiento suave es realmente una animación en la BlackBerry, ya que dura más tiempo que el evento que desencadenó

He estado un poco vago en los detalles, y esto no es una cosa muy fácil de hacer, así que espero que esto ayude un poco.

Otros consejos

No hay una manera oficial de la API de hacer esto, por lo que yo sé, pero probablemente se puede fudged a través de un uso inteligente de NullField (Field.FOCUSABLE), que es el número de interfaces de usuario personalizada de Blackberry implemento obligado comportamiento del foco .

Un enfoque sería para derivar cada "elemento de la lista" de una clase que se entrelaza NullFields enfocable con el contenido visible del elemento de la lista en sí - esto obligaría esencialmente el sistema de desplazamiento de "saltar" a intervalos más pequeños en lugar de la gran intervalos dictados por las divisiones naturales entre los elementos de la lista, y tendrían la ventaja adicional de no modificar la posición visible del contenido del elemento de la lista.

a menos que desee para anular el cómo las pinturas ListField o crear su propio envoltorio, siempre tendrá este problema, esto se debe a que cada línea es siempre visible cuando se desplaza. Trate de usar LabelField lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top