Вы можете использовать эту библиотеку . Для получения дополнительной информации оформите README
Шаг 1 : добавить зависимости
В build.gradle (Проект)
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
В приложении Gradle
dependencies {
// AppCompat version
implementation 'com.github.myinnos:AlphabetIndex-Fast-Scroll-RecyclerView:1.0.92'
or
// AndroidX version
implementation 'com.github.myinnos:AlphabetIndex-Fast-Scroll-RecyclerView:1.0.94'
}
Шаг 2 : добавить макет
<in.myinnos.alphabetsindexfastscrollrecycler.IndexFastScrollRecyclerView
android:id="@+id/fast_scroller_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Шаг 2 : внедрить SectionIndexer в RecyclerViewAdapter.
public class RecyclerViewAdapter extends RecyclerView.Adapter<ViewHolder> implements SectionIndexer {
private List<String> mDataArray;
private ArrayList<Integer> mSectionPositions;
.....
@Override
public int getSectionForPosition(int position) {
return 0;
}
@Override
public Object[] getSections() {
List<String> sections = new ArrayList<>(26);
mSectionPositions = new ArrayList<>(26);
for (int i = 0, size = mDataArray.size(); i < size; i++) {
String section = String.valueOf(mDataArray.get(i).charAt(0)).toUpperCase();
if (!sections.contains(section)) {
sections.add(section);
mSectionPositions.add(i);
}
}
return sections.toArray(new String[0]);
}
@Override
public int getPositionForSection(int sectionIndex) {
return mSectionPositions.get(sectionIndex);
}
}
Если вам сложно разобраться, взгляните на пример app