Hacer scrollbars flash de código (como iOS flashScrollIndicators)

En iOS hay el método flashScrollIndicators en la clase UIScrollView que te permite hacer que las barras de desplazamiento parpadeen brevemente como lo hacen cuando se muestra la vista por primera vez.

No puedo encontrar en la documentación de Android equivalente a esto, para que las barras de desplazamiento flash brevemente en desplazable vistas (ScrollView, ListView, WebView, etc). Traté de emitir un requestLayout() en la vista, pero eso no funcionó.

La razón por la que estoy preguntando esto es porque mis vistas están contenidas en un ViewPager y cuando el usuario pasa a una página diferente, esa página ya ha sido dibujada y no muestra las barras de desplazamiento.

Contestando mi propia pregunta aquí

El método se llama awakenScrollBars y se define en la clase View . Desafortunadamente el método está protected por lo que tendrá que subclase el ScrollView, ListView o cualquier vista que desee tener sus barras de desplazamiento destellado.

Alternativamente, los métodos públicos scrollTo y scrollBy también parpadean las barras de desplazamiento pero sólo si la posición de desplazamiento ha cambiado realmente. Así fe listView.scrollBy(0,0) no funcionará y listView.scrollTo(0,0) sólo funciona si la vista no estaba ya en la parte superior.

Si son incapaces de subclase la vista, lo siguiente parece funcionar, aunque es cierto que es una especie de hack:

 view.setVisibility(View.INVISIBLE); view.setVisibility(View.VISIBLE); 

Configurar la vista a invisible y luego inmediatamente a visible otra vez no parece causar ningún redibujo, pero tiene el efecto secundario de activar la barra de desplazamiento parpadeando.

Yo estaba teniendo un problema similar que he resuelto forzándolo a desplazarse hacia arriba y hacia abajo directamente después de sí.

 scrollView.scrollBy(0, 1); scrollView.scrollBy(0, -1); 

Esto hace que ScrollView scrollView muestre la barra de desplazamiento vertical, a menos que no haya nada para desplazarse.

Espero que esto fue útil.

Chico.

  • Habilitar scroll intertial en NestedScrollView (Android Studio)
  • No estirar ScrollView
  • OnScrollChanged encender varias veces para desplazarse final en scrollView
  • Android - varias vistas de desplazamiento verticales en scrollview horizontal
  • Mover EditText en NestedScrollView cuando aparece el teclado virtual
  • Diseño relativo en ScrollView
  • Sincronizar la posición de desplazamiento de ScrollView en todos los fragmentos dentro de ViewPager
  • Hacer que una vista secundaria coincida con el ancho de una vista de desplazamiento principal
  • Correctamente desplazando un EditText a la vista cuando se enfoca
  • ListView dentro de un ScrollView
  • RelativeLayout dentro de ScrollView con allignParentBottom
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.