Spanish Scroll View

Jannete

Member
Hola, hola a todos. Últimamente he estado fuera de la programación por la regularización de las clases. El otro dia estaba jugando un poco y pense en una idea pero no supe como implementarla.

Verán, pongo un Scroll View, lo que quiero es que al poner el dedo en pantalla cuente 0, al hacer scroll hacia abajo vaya contando poco a poco 1, 2, 3, 4... ya la inversa, al hacer scroll hacia arriba vaya restando.

Por ejemplo, pongo el dedo en pantalla (0), deslizo un poco hacia abajo y suma 1, sigo deslizando y suma uno más (o sea, ya iría en el 2), regreso hacia arriba y resta 1, regreso de nuevo hacia arriba y resta 1 mas (estaríamos en el 0 nuevamente). No se si me doy a entender.

Trate con la librería Gestures (usando las coordenadas), pero no conseguí nada. ¿Alguna sugerencia?. ¡Muchas gracias y saludos a todos!.
 

roerGarcia

Active Member
Licensed User
Longtime User
Aqui tengo un panel en color blanco, sin marco, por eso no se ve, pero es solo para ejemplificar este codigo:
touch:
Private Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
    Log(x & ", " & Y)
End Sub

1648155803158.png


los valores del log, 189.97, 425.97 etc, son las coordenadas de X y Y del evento touch de ese panel, si aumentan va hacia abajo, si disminuyen va hacia arriba. En este caso es el emulador y deslizo el raton sobre el panel.
Con eso puede crear lo que quieres, no?
Saludos, (México)

1648155991529.png
 

josejad

Expert
Licensed User
Longtime User
Hola Jannete, algunas cosillas que se me ocurren.
Podrías usar algún tipo de "rueda", como por ejemplo AS WheelPicker o la Spinner Wheel
O bien podrías tener un customlistview, y sumar o restar ese número cada vez que "aparece" o "desaparece" un ítem del mismo. Para hacer que no se queden a medias, podrías usar el código de SnapCLV

Lo que comenta roerGarcia me parece genial.

saludos,
 

Jannete

Member
Antes que nada, muchas gracias por sus amables respuestas de ambos.

Creo no me supe explicar bien (estaba con mucho sueño), en resumidas palabras, quiero hacer un slider con el Scroll del Scroll View.

@roerGarcia La idea del panel_touch marca las coordenadas de X, Y, pero quiero algo que registre cuando se pulsa y cuando se suelta la pantalla (el swipe), probé con la librería Gestures, poniendo la posición del inicio del Swipe como el punto de partida y entre más aumentaba la posición en el eje, sumaba y entre más disminuía restaba.

Algo así como:

Dim Valor = 0
Dim In As Float = 0.00
PosicionSwipe (y= 120.00)
In = PosicionSwipe
(In solo será la coordenada donde se inició el swipe)

Cuando PosicionSwipe sube a 220.00

If PosicionSwipe > In + 100.00 then
valor = valor + 1
Else If PosicionSwipe < In - 100.00 then
Valor = valor - 1

El problema que al hacer esto como que de repente se brincan las coordenadas y a veces suben excesivamente rápido o sigo el swipe y no aumenta.

Muchas gracias @José J. Aguilar , pero la idea es que haya un contador que no se vea (insisto en mi ejemplo de un slider).

Gracias nuevamente.
 

roerGarcia

Active Member
Licensed User
Longtime User
Una idea, muchas alternativas.

Entonces, ya tienes avanzada la solucion, ¿no?

Tu algoritmo supongo que actualiza el ultimo valor de la posicion para comparar con el nuevo y determinar si sube o baja, ¿verdad?

La "pantalla" es equivalente al view/vista que este al frente, este puede ser un panel como te lo mostre u otro componente (como sugiere José) que captura y procese el touch o desplazamiento.

Siempre hay solución y generalmente hay mas de una, pero la regla es, la solucion mas simple usualmente es la mejor.

Saludos, comentanos como vas.
 
Top