Як завжди показувати смугу прокрутки


256

Панель прокрутки в моєму перегляді видно лише тоді, коли я починаю прокручувати. Як я завжди це можу показати?

Відповіді:


543

На сьогодні найкращим способом є використання android:fadeScrollbars="false"в xml, що еквівалентно ScrollView.setScrollbarFadingEnabled(false);коду Java.


для ListView не вийшло, але це спрацювало:view.setScrollBarFadeDuration(0);
user924

3
тому правильною і прийнятою відповіддю має бути відповідь @Tanmay Mandal ( setScrollBarFadeDuration(0)), оскільки setScrollbarFadingEnabled(false)працює не скрізь
user924

або він припиняє роботу, наприклад , з - за , як описано тут stackoverflow.com/a/6673848/7767664 (OnStop, OnStart знову і faield), тому setScrollBarFadeDuration(0);є більш надійним
user924

55

Встановлення android:scrollbarFadeDuration="0"волі зробить трюк.


4
доступний у sdk 16 як метод java
larham1

42

Є два способи:

  • з коду 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);до активності, і це працює!


6

Ці двоє разом працювали на мене:

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

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

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"`
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.