Cómo mostrar siempre la barra de desplazamiento

256

La barra de desplazamiento en mi vista de desplazamiento solo es visible cuando comienzo a desplazarme. ¿Cómo puedo mostrarlo siempre?

jul
fuente

Respuestas:

543

A partir de ahora, la mejor manera es usar android:fadeScrollbars="false"en xml, que es equivalente a ScrollView.setScrollbarFadingEnabled(false);en código java.

Rejinderi
fuente
para ListView no funcionó, pero esto funcionó:view.setScrollBarFadeDuration(0);
user924
3
así que la respuesta correcta y aceptada debería ser @Tanmay Mandal answer ( setScrollBarFadeDuration(0)), porque setScrollbarFadingEnabled(false)no funciona en todas partes
user924
o deja de funcionar, por ejemplo, debido a lo descrito aquí stackoverflow.com/a/6673848/7767664 (onStop, onStart again y faield), por lo que setScrollBarFadeDuration(0);es más confiable
user924
55

Establecer el android:scrollbarFadeDuration="0"hará el truco.

Tanmay Mandal
fuente
44
disponible en SDK 16 como método Java
larham1
42

Hay 2 formas:

  • del código de Java: ScrollView.setScrollbarFadingEnabled(false);
  • del código XML: android:fadeScrollbars="false"

¡Simple como eso!

Tudor Luca
fuente
11

Intente esto ya que las sugerencias anteriores no me funcionaron cuando quería hacer esto para un TextView:

TextView.setScrollbarFadingEnabled(false);

Buena suerte.

Camille Sévigny
fuente
@ user924 seguro, pero esa respuesta fue publicada 10 días después de mi comentario
sXe
10

No olvide agregar android:scrollbars="vertical"junto con android:fadeScrollbars="false"o no se mostrará en absoluto en algunos casos.

Sir Codesalot
fuente
9

Prueba android:scrollbarAlwaysDrawVerticalTrack="true"vertical. y prueba android:scrollbarAlwaysDrawHorizontalTrack="true"horizontal

Saurabh Pareek
fuente
8

Como ninguno de los anteriores funcionó para mí, esto es lo que hizo: android:scrollbarDefaultDelayBeforeFade="500000"

Emir Kuljanin
fuente
8

android:scrollbarFadeDuration="0"a veces no funciona después de salir de las aplicaciones y comenzar de nuevo. ¡Entonces agrego gallery.setScrollbarFadingEnabled(false);a la actividad y funciona!

icegee
fuente
6

Estos dos juntos trabajaron para mí:

android:scrollbarFadeDuration="0"
android:scrollbarAlwaysDrawVerticalTrack="true"
sealskej
fuente
6

Dale estilo a la barra de desplazamiento Visibilidad, color y grosor de esta manera:

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/recycler_bg"

        <!--Show Scroll Bar-->
        android:fadeScrollbars="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        android:scrollbarFadeDuration="50000"

        <!--Scroll Bar thickness-->
        android:scrollbarSize="4dp"

        <!--Scroll Bar Color-->
        android:scrollbarThumbVertical="@color/colorSecondaryText"/>

Espero que ayude a ahorrar algo de tiempo.

Hitesh Sahu
fuente
5

Yo tuve el mismo problema. La barra tenía el mismo color de fondo. Tratar:

android:scrollbarThumbVertical="@android:color/black"
Boris Karloff
fuente
4

Simple y fácil. Agregue este atributo a ScrollBar:

android:fadeScrollbars="false"

O puedes hacer esto en :

scrollView.setScrollbarFadingEnabled(false);

O en :

scrollView.isScrollbarFadingEnabled = false
Gourav
fuente
3

setVertical * ayudó a hacer que la barra de desplazamiento vertical siempre sea visible mediante programación

scrollView.setScrollbarFadingEnabled(false);
scrollView.setVerticalScrollBarEnabled(true);
scrollView.setVerticalFadingEdgeEnabled(false);
Dmitry Bryliuk
fuente
2

Establecer esto hará el truco. Cambia el @drwable por estilo propio.

android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:fadeScrollbars="false"
            android:scrollbarThumbVertical="@drawable/scroll"`
Muthu Krishnan
fuente