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ć?

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.


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


42

Istnieją 2 sposoby:

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

Proste!


11

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

TextView.setScrollbarFadingEnabled(false);

Powodzenia.


@ 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.


9

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


8

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


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!


6

Ci dwaj razem pracowali dla mnie:

android:scrollbarFadeDuration="0"
android:scrollbarAlwaysDrawVerticalTrack="true"

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.


5

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

android:scrollbarThumbVertical="@android:color/black"

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

3

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

scrollView.setScrollbarFadingEnabled(false);
scrollView.setVerticalScrollBarEnabled(true);
scrollView.setVerticalFadingEdgeEnabled(false);

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"`
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.