Standalone scrollbar for Android
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" ></androidx.recyclerview.widget.RecyclerView>
<com.hieupt.android.standalonescrollbar.StandaloneScrollBar
android:id="@+id/scrollbar"
android:layout_width="wrap_content"
android:layout_height="match_parent" ></com.hieupt.android.standalonescrollbar.StandaloneScrollBar>
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)
VisibilityManager
scrollbar.visibilityManager = YourCustomVisibilityManager()
scrollbarTrackDrawable
and scrollbarThumbDrawable
or through java/kotlin
scrollbar.customTrackDrawable = customDrawable
scrollbar.customThumbDrawable = customDrawable
scrollbarDefaultTrackTint
and scrollbarDefaultThumbTint
scrollbar.defaultThumbTint = ColorStateList()
scrollbar.defaultTrackTint = ColorStateList()
scrollbarThumbLength
|scrollbarThumbLengthByTrackRatio
|scrollbarMinThumbLength
|scrollbarAutoThumbLength
. If multi attributes is set, the priorities order will be scrollbarThumbLength
> scrollbarThumbLengthByTrackRatio
> scrollbarAutoThumbLength
scrollbar.thumbLength = desireLengthInPx
scrollbar.thumbLengthByTrackRatio = percentOfTrackLength //[0.0..1.0]
scrollbar.minThumbLength = desireLengthInPx
scrollbar.autoThumbLength = true|false
scrollbarDraggable
scrollbar.draggable = true|false
scrollbarAlwaysShow
)
scrollbar.isAlwaysShown = true|false
scrollbarDelayBeforeAutoHideDuration
)
scrollbar.delayBeforeAutoHide = delayTimeInMillis