Jak zawsze wyświetlać pasek przewijania

256

Pasek przewijania w moim widoku przewijania jest widoczny tylko po rozpoczęciu przewijania. Jak mogę to zawsze pokazać?

Jul
źródło

Odpowiedzi:

543

Na razie najlepszym sposobem jest użycie android:fadeScrollbars="false"w XML, który jest równoważny z ScrollView.setScrollbarFadingEnabled(false);kodem Java.

Rejinderi
źródło
dla ListView nie działało, ale działało:view.setScrollBarFadeDuration(0);
user924
3
więc poprawną i akceptowaną odpowiedzią powinna być @Tanmay Mandal answer ( setScrollBarFadeDuration(0)), ponieważ setScrollbarFadingEnabled(false)nie wszędzie działa
924
lub przestaje działać na przykład z powodu opisanego tutaj stackoverflow.com/a/6673848/7767664 (onStop, onStart ponownie i faield), więc setScrollBarFadeDuration(0);jest bardziej niezawodny
user924
55

Ustawienie android:scrollbarFadeDuration="0"będzie załatwić sprawę.

Tanmay Mandal
źródło
4
dostępny w SDK 16 jako metoda java
larham1
42

Istnieją 2 sposoby:

  • z kodu Java: ScrollView.setScrollbarFadingEnabled(false);
  • z kodu XML: android:fadeScrollbars="false"

Proste!

Tudor Luca
źródło
11

Wypróbuj to, ponieważ powyższe sugestie nie zadziałały, gdy chciałem to zrobić dla TextView:

TextView.setScrollbarFadingEnabled(false);

Powodzenia.

Camille Sévigny
źródło
@ user924 pewnie, ale ta odpowiedź została opublikowana 10 dni po moim komentarzu
sXe
10

Nie zapomnij dodać android:scrollbars="vertical"razem android:fadeScrollbars="false"lub w niektórych przypadkach nie będzie się wyświetlać wcale.

Sir Codesalot
źródło
9

Spróbuj android:scrollbarAlwaysDrawVerticalTrack="true"w pionie. i spróbuj android:scrollbarAlwaysDrawHorizontalTrack="true"w poziomie

Saurabh Pareek
źródło
8

Ponieważ żadne z powyższych nie działało dla mnie, oto co: android:scrollbarDefaultDelayBeforeFade="500000"

Emir Kuljanin
źródło
8

android:scrollbarFadeDuration="0"czasami nie działa po wyjściu z aplikacji i ponownym uruchomieniu. Dodam więc gallery.setScrollbarFadingEnabled(false);do działania i działa!

lody
źródło
6

Ci dwaj razem pracowali dla mnie:

android:scrollbarFadeDuration="0"
android:scrollbarAlwaysDrawVerticalTrack="true"
sealskej
źródło
6

Styl paska przewijania Widoczność, kolor i grubość:

<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"/>

Mam nadzieję, że pomoże to zaoszczędzić trochę czasu.

Hitesh Sahu
źródło
5

Miałem ten sam problem. Pasek miał ten sam kolor tła. Próbować:

android:scrollbarThumbVertical="@android:color/black"
Boris Karloff
źródło
4

Proste i łatwe. Dodaj ten atrybut do ScrollBar:

android:fadeScrollbars="false"

Lub możesz to zrobić w :

scrollView.setScrollbarFadingEnabled(false);

Lub w :

scrollView.isScrollbarFadingEnabled = false
Gourav
źródło
3

Dzięki setVertical * pionowy pasek przewijania jest zawsze programowo widoczny

scrollView.setScrollbarFadingEnabled(false);
scrollView.setVerticalScrollBarEnabled(true);
scrollView.setVerticalFadingEdgeEnabled(false);
Dmitrij Bryliuk
źródło
2

Ustawienie to załatwi sprawę. Zmień @drwable na własny styl.

android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:fadeScrollbars="false"
            android:scrollbarThumbVertical="@drawable/scroll"`
Muthu Krishnan
źródło