ChatGPT解决这个技术问题 Extra ChatGPT

How to always show scrollbar

The scrollbar in my scrollview is only visible when I start scrolling. How can I always show it?


T
TronicZomB

As of now the best way is to use android:fadeScrollbars="false" in xml which is equivalent to ScrollView.setScrollbarFadingEnabled(false); in java code.


for ListView didn't work, but this worked: view.setScrollBarFadeDuration(0);
so the right and accepted answer should be @Tanmay Mandal answer (setScrollBarFadeDuration(0)), because setScrollbarFadingEnabled(false) doesn't work everywhere
or it stops works for example because of like described here stackoverflow.com/a/6673848/7767664 (onStop, onStart again and faield), so setScrollBarFadeDuration(0); is more reliable
T
Tanmay Mandal

Setting the android:scrollbarFadeDuration="0" will do the trick.


available in sdk 16 as a java method
T
Top-Master

There are 4 ways:

From Java code: ScrollView.setScrollbarFadingEnabled(false);

From XML code: android:fadeScrollbars="false"

From Java code: myView.setScrollBarFadeDuration(0)

From XML code: android:scrollbarFadeDuration="0"

Simple as that!


S
Sir Codesalot

Don't forget to add android:scrollbars="vertical" along with android:fadeScrollbars="false" or it won't show at all in some cases.


E
Eric Aya

Style your scroll bar Visibility, Color and Thickness like this:

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

Hope it help save some time.


C
Camille Sévigny

Try this as the above suggestions didn't work for me when I wanted to do this for a TextView:

TextView.setScrollbarFadingEnabled(false);

Good Luck.


@user924 sure, but that answer was posted 10 days after my comment
S
Saurabh Pareek

Try android:scrollbarAlwaysDrawVerticalTrack="true" for vertical. and Try android:scrollbarAlwaysDrawHorizontalTrack="true" for horizontal


E
Emir Kuljanin

Since neither of the above worked for me, here's what did: android:scrollbarDefaultDelayBeforeFade="500000"


i
icegee

android:scrollbarFadeDuration="0" sometimes does not work after I exit from the apps and start again. So I add gallery.setScrollbarFadingEnabled(false); to the activity and it works!


B
Boken

Simple and easy. Add this attribute to the ScrollBar:

android:fadeScrollbars="false"

Or you can do this in :

scrollView.setScrollbarFadingEnabled(false);

Or in :

scrollView.isScrollbarFadingEnabled = false

s
sealskej

These two together worked for me:

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

B
Boris Karloff

I had the same problem. The bar had the same background color. Try:

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

D
Dmitry Bryliuk

setVertical* helped to make vertical scrollbar always visible programmatically

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

G
Gourav

Setting this will do the trick. Change the @drwable for own style.

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

李亮亮

use awakenScrollBars() awake scrollbar draw.