Как всегда показывать полосу прокрутки

256

Полоса прокрутки в моем окне прокрутки видна только когда я начинаю прокрутку. Как я всегда могу показать это?

июль
источник

Ответы:

543

На данный момент лучшим способом является использование android:fadeScrollbars="false"в XML, что эквивалентно ScrollView.setScrollbarFadingEnabled(false);Java-коду.

Rejinderi
источник
для ListView не работает, но это работает:view.setScrollBarFadeDuration(0);
user924
3
поэтому правильным и принятым ответом должен быть @Tanmay Mandal answer ( setScrollBarFadeDuration(0)), потому setScrollbarFadingEnabled(false)что не везде работает
user924
или он перестает работать, например, из-за того, как описано здесь stackoverflow.com/a/6673848/7767664 (onStop, onStart снова и faield), поэтому setScrollBarFadeDuration(0);более надежен
user924
55

Установка android:scrollbarFadeDuration="0"сделает свое дело.

Tanmay Mandal
источник
4
доступно в SDK 16 в качестве метода Java
larham1
42

Есть 2 способа:

  • из кода Java: ScrollView.setScrollbarFadingEnabled(false);
  • из XML-кода: android:fadeScrollbars="false"

Просто как тот!

Тудор Лука
источник
11

Попробуйте это, так как вышеупомянутые предложения не работали для меня, когда я хотел сделать это для TextView:

TextView.setScrollbarFadingEnabled(false);

Удачи.

Камиль Севиньи
источник
@ user924 уверен, но ответ был отправлен через 10 дней после того, как мой комментарий
SXE
10

Не забудьте добавить android:scrollbars="vertical"вместе с, android:fadeScrollbars="false"или это не будет отображаться вообще в некоторых случаях.

Сэр кодесалот
источник
9

Попробуйте android:scrollbarAlwaysDrawVerticalTrack="true"по вертикали. и попробуйте android:scrollbarAlwaysDrawHorizontalTrack="true"для горизонтального

Саураб Парик
источник
8

Поскольку ни один из вышеперечисленных не работал для меня, вот что сделал: android:scrollbarDefaultDelayBeforeFade="500000"

Эмир Кульянин
источник
8

android:scrollbarFadeDuration="0"иногда не работает после выхода из приложений и запуска заново. Так что я добавляю gallery.setScrollbarFadingEnabled(false);в активность, и это работает!

icegee
источник
6

Эти двое вместе работали на меня:

android:scrollbarFadeDuration="0"
android:scrollbarAlwaysDrawVerticalTrack="true"
sealskej
источник
6

Стиль вашей полосы прокрутки Видимость, цвет и толщина, как это:

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

Надеюсь, это поможет сэкономить время.

Хите саху
источник
5

У меня такая же проблема. Бар был одинакового цвета фона. Пытаться:

android:scrollbarThumbVertical="@android:color/black"
Борис Карлофф
источник
4

Просто и легко. Добавьте этот атрибут в ScrollBar:

android:fadeScrollbars="false"

Или вы можете сделать это в :

scrollView.setScrollbarFadingEnabled(false);

Или в :

scrollView.isScrollbarFadingEnabled = false
Gourav
источник
3

setVertical * помог сделать программную вертикальную полосу прокрутки всегда видимой

scrollView.setScrollbarFadingEnabled(false);
scrollView.setVerticalScrollBarEnabled(true);
scrollView.setVerticalFadingEdgeEnabled(false);
Дмитрий Брылюк
источник
2

Установка этого сделает свое дело. Измените @drwable для собственного стиля.

android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:fadeScrollbars="false"
            android:scrollbarThumbVertical="@drawable/scroll"`
Мутху Кришнан
источник