¿Hay alguna forma de calcular la posición final de desplazamiento

Me gustaría saber donde el scroll (recyclerview, scrollview) dejará de desplazarse con velocidad en el método Fling. ¿Hay alguna manera de calcular esto?

Miré el código fuente de RecyclerView y usa una clase interna ViewFlinger con la siguiente variable de miembro:

private ScrollerCompat mScroller; 

Para resumir, cuando se detecta un fling es manejado por una instancia de ViewFlinger. ViewFlinger entonces fija la velocidad de fling en mScroller y le permite averiguar la curva de animación. ScrollerCompat es lo que quieres llegar a b / c tiene útiles API para obtener la final xey del scroll. Desafortunadamente, el ScrollerCompat mScroller de la instancia que usted necesita para llegar a no es expuesto por RecyclerView. MScroller.fling (0, 0, velocityX, velocityY, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE); Dos posibles soluciones. Ambos deben hacerse una vez que obtenga el evento fling e involucre obtener o crear una instancia de ScrollerCompat:

  1. Utilice la reflexión para agarrar la instancia de mScroller.
  2. Guarde una instancia de ScrollerCompat e iníciela de la misma manera que RecyclerView. A continuación, pase la velocidad de mScroller.fling(0, 0, velocityX, velocityY, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE); : mScroller.fling(0, 0, velocityX, velocityY, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE);

Una vez que tenga la instancia de ScrollerCompat, llame a las API públicas para obtener las posiciones finales de xyy. Suponiendo que tiene vistas que son del mismo tamaño y que conoce su ubicación de inicio de fling dentro de la lista, puede calcular la vista de que aterrizará. Algo como esto:

 // Assumes vertical scrolling const int childHeight = this.getChildren().getChildAt(0).getHeight(); float childOffset = mScroller.getFinalY() / childHeight; 
  • Mover EditText en NestedScrollView cuando aparece el teclado virtual
  • Detener ScrollView de establecer el enfoque en EditText
  • Menú Ribbon de Android con fragmentos
  • Gestión de eventos táctiles en ScrollView Android
  • Cómo mostrar siempre la barra de desplazamiento
  • Problema con webview y scrollview
  • distinguir un golpe y hacer clic en android (pasar el evento a otra vista si es un golpe)
  • Android Scrollview Desplazamiento automático hacia arriba
  • Cómo agregar dos listview en scrollview
  • Agregar un encabezado a un GridView (Android)
  • ImageView no llenará el padre
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.