Skip to content
Attach TabLayout and RecyclerView. Useful for categorizing RecyclerView items.
Branch: master
Clone or download
iammert Merge pull request #3 from necatisozer/new-scroll-methods
Add new scroll methods when tabs selected
Latest commit 087b2d2 Jan 9, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Add library Dec 3, 2019
app Add new scroll methods when tabs selected Jan 1, 2020
art Add gif. Dec 3, 2019
gradle/wrapper Add library Dec 3, 2019
tabscrollattacherlib Merge pull request #3 from necatisozer/new-scroll-methods Jan 9, 2020
.gitignore Add library Dec 3, 2019 Update Jan 1, 2020
build.gradle Add library Dec 3, 2019
gradlew Add library Dec 3, 2019
gradlew.bat Add library Dec 3, 2019
settings.gradle Add library Dec 3, 2019

What? 🤔

It is not a custom TabLayout or RecyclerView. It is just a helper library to attach to your RecyclerView with your TabLayout. If you don't want to go with sticky header RecyclerView or something like that, and also want to provide a good experience when your user is scrolling the content, this small library is for you.

How? 🤨

You fetch your product list and their categories. All you need to do is calcualate start index for all categories. Attacher will do the rest.

If your backend guy returns this json,

CategoryA -> 10 items (between 0..10)
CategoryB -> 20 items (between 10..30)
CategoryC -> 30 items (between 30..60)

Then your offset list will be,

//3 tabs and their offset indexes in total list.
val categoryIndexOffsetList = [0,10,30]

Then? 🙄

Then you attach.

TabScrollAttacher(tabLayout, recyclerView, categoryIndexOffsetList)

Configure? 🧑‍🔧

  • scrollDirectly(): If you don't want to see the scrolling process, use it.
  • scrollSmoothly(): If you want to see the flowing items while scrolling, this is for you.
  • scrollSmoothly(limit = 10): If you have a lot of items and smooth scrolling takes too long, you can set a scrolling item limit. It will scroll directly until the limit items left, then rest of the items will scroll smoothly.
TabScrollAttacher(tabLayout, recyclerView, categoryIndexOffsetList) {
    // Configuration

Where? 🤩

maven { url '' }
dependencies {
  compile 'com.github.iammert:TabScrollAttacher:1.0.0'

When? 😇

When you have LinearLayoutManager, GridLayoutManager in any orientation (horizontal or vertical) you can use this library.

Who? 👻


Copyright 2019 Mert Şimşek

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.