This library is available on jitpack.io.
Add this in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.I3eyonder:android-standalone-scroll-bar:x.y.z'
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.hieupt.android.standalonescrollbar.StandaloneScrollBar
android:id="@+id/scrollbar"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
scrollbar.attachTo(recyclerView)
To using with [NestedScrollView
, ScrollView
, HorizontalScrollView
, WebView
], please use [NestedScrollView2
, ScrollView2
, HorizontalScrollView2
, WebView2
] for your layout instead.
scrollbar.attachTo(nestedScrollView2)
You can also implement your own ScrollableView
to use StandaloneScrollBar
with any View
. You can refer VerticalScrollViewHelper
or HorizontalScrollViewHelper
for example of implementation.
scrollbar.attachTo(scrollableView)
- Custom track/thumb visibility by using
VisibilityManager
scrollbar.visibilityManager = YourCustomVisibilityManager()
- Custom track/thumb drawable using attribute
scrollbarTrackDrawable
andscrollbarThumbDrawable
or through java/kotlin
scrollbar.customTrackDrawable = customDrawable
scrollbar.customThumbDrawable = customDrawable
- Tint track/thumb by using attribute
scrollbarDefaultTrackTint
andscrollbarDefaultThumbTint
scrollbar.defaultThumbTint = ColorStateList()
scrollbar.defaultTrackTint = ColorStateList()
- Custom thumb length by using attribute
scrollbarThumbLength
|scrollbarThumbLengthByTrackRatio
|scrollbarMinThumbLength
|scrollbarAutoThumbLength
. If multi attributes is set, the priorities order will bescrollbarThumbLength
>scrollbarThumbLengthByTrackRatio
>scrollbarAutoThumbLength
scrollbar.thumbLength = desireLengthInPx
scrollbar.thumbLengthByTrackRatio = percentOfTrackLength //[0.0..1.0]
scrollbar.minThumbLength = desireLengthInPx
scrollbar.autoThumbLength = true|false
- Enable/Disable thumb bar drag ability using attribute
scrollbarDraggable
scrollbar.draggable = true|false
- Auto hide ability (attribute
scrollbarAlwaysShow
)
scrollbar.isAlwaysShown = true|false
- Delay duration before scrollbar auto hide (attribute
scrollbarDelayBeforeAutoHideDuration
)
scrollbar.delayBeforeAutoHide = delayTimeInMillis