¿La lógica detrás de startScroll en scroller?
No obtengo la idea de startScroll()
en esta documentación .
Dice:
- Desplácese hacia arriba ScrollView lentamente
- Cómo configurar onFling () evento de Gesture en ScrollView en android?
- ¿Cómo puedo ver que View se vuelve visible
- Sincronizar la posición de dos vistas ScrollView
- Android WebView: deshabilitar el degradado del borde amarillo de desplazamiento
Los números positivos desplazarán el contenido hacia la izquierda.
No lo entiendo. Si 0 está siempre a la izquierda ¿por qué desplazarse hacia la izquierda? Y si es negativo, se desplazará hacia la derecha.
¿Pero por qué? Es tan difícil de rodear mi cabeza. ¿Cuál es la lógica detrás de esto? ¿Por qué mover positivo a izquierda?
En el juego y la programación gráfica 0 siempre será superior izquierda o bot-izquierda, pero siempre estará a la izquierda. Por lo tanto, tendrá sentido mover a la derecha con números positivos y pasar a la izquierda con negativo. ¿Pero por qué es diferente en startScroll?
Sólo estoy preguntando porque soy muy curioso por qué lo diseñó así.
- Cómo agregar el botón de acción flotante en la parte superior de scrollview
- Android: ¿Cómo puedo añadir un pie de página a una vista de pantalla completa?
- OnScrollChanged encender varias veces para desplazarse final en scrollView
- Dificultad con ScrollView y LinearLayout
- ¿Es posible tener un ViewPager dentro de un ScrollView?
- ¿Dibuja gráficas en android utilizando Graphview?
- Android: crea un LinearLayout que contiene un ListView desplazable
- Cómo desplazarse tableview en android
Para ilustrar lo que está pasando, vea el dibujo:
- Los dibujos superiores muestran el sistema de coordenadas:
(0,0)
está en la parte superior izquierda, y las direcciones positivas están a la derecha (coordenada x) y hacia abajo (coordenada y). - Las ilustraciones de abajo muestran el efecto del desplazamiento, tal como aparece cuando el "puerto de vista" se está moviendo.
- A la izquierda está la posición antes de la llamada para desplazarse
- A la derecha está la posición después de la llamada para desplazarse por x = + 2, y = + 3
- El rectángulo azul claro es el "puerto de visualización" de la pantalla: el método de desplazamiento está moviendo realmente este rectángulo (la representación de la pantalla) y no el contenido. Ver como una cámara que mirar el mundo a través.
- El punto rojo es sólo un elemento colocado en la vista, y no se mueve. Míralo como el mundo que miras.
Puede ver que mover el "puerto de vista" en positivo x un resultado de direcciones y en el punto rojo parecen estar moviéndose hacia arriba y hacia la izquierda. Al igual que mover una cámara a la derecha hará que el mundo en el movimiento de vídeo a la izquierda.
De hecho, está desplazando la vista hacia la derecha, lo que hace que la vista de contenido se desplace hacia la izquierda.
Tener |A|B|C|
, Ahora el desplazamiento por valor positivo dará lugar a un desplazamiento a la derecha, que desplaza el contenido real a la izquierda: |B|C|
– A
no es visible ya, porque se considera como un contenido y se desplaza a la izquierda.
Podemos imaginar un rollo de dos formas diferentes. Una es que la ventana se está moviendo y la otra es que el contenido se está moviendo. Según la documentación de Android de getScrollX ()
Devuelve la posición de desplazamiento hacia la izquierda de esta vista. Este es el borde izquierdo de la parte que se muestra en la vista. No es necesario dibujar ningún píxel más a la izquierda, ya que están fuera del marco de la vista en pantalla.
Está claro que Android prefiere el scroll de contenido respectivo en lugar de uno de ventana respectiva. En contenido scrolls respectivos
Los números positivos desplazarán el contenido hacia la izquierda.
No sólo startScroll()
, otros métodos como View.scrollBy()
, View.scrollTo()
, etc. trabajan con la misma idea.
Si usted pregunta "¿cuál es la imaginación más natural, contenido respectivo o ventana respectiva?", Diré "no sé".
La vista Contenedor está fija en la pantalla. Cuando se desplaza a la derecha, los elementos correctos continúan fluyendo hacia la izquierda. Así, cuando lo haces
scroller.startScroll (int 2 /*startX */, int startY, int dx, int dy, int duration);
Hace que su contenido se desplace hacia la izquierda.
Scroller es en realidad la barra lateral horizontal o vertical, que aparecen cuando hay un gesto de desplazamiento. Piense en el movimiento con respecto a scroller y observe su comportamiento en una aplicación. Usted comprenderá por qué es implementar así. Usted está pensando en lo que respecta a la posición de contacto, causando la confusión.
- Cómo terminar () una Actividad cuando se pulsa el botón Inicio
- Se inicia la actividad de detección para obtener resultados