DEPRECATED
Android RecyclerView Fast Scroller + Section bar
Grab via Maven:
<dependency>
<groupId>com.appspell.wild-scroll</groupId>
<artifactId>wild-scroll</artifactId>
<version>0.90</version>
<type>pom</type>
</dependency>
or Gradle:
implementation 'com.appspell.wild-scroll:wild-scroll:0.90'
In your layout file:
<com.appspell.wildscroll.view.WildScrollRecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/item_sample_list" />
In your code (Actvity/Fragment):
val recyclerView = view.findViewById<RecyclerView>(R.id.list)
with(recyclerView) {
layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
adapter = SampleAdapter()
(adapter as SampleAdapter).items = DataSource(resources).companies
}
One important thing that your need to implement SectionFastScroll
for your RecyclerView.Adapter
class SampleAdapter : RecyclerView.Adapter<ViewHolder>(), SectionFastScroll {
override fun getSectionName(position: Int): String = items[position].section
}
Set all available attributes in XML
<com.appspell.wildscroll.view.WildScrollRecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:wildScroll_textColor="@color/textSecondary"
app:wildScroll_textSize="@dimen/textRegular"
app:wildScroll_highlightColor="@color/colorSecondary"
app:wildScroll_highlightTextSize="@dimen/textHighlighted"
app:wildScroll_sectionBarBackgroundColor="@color/divider"
app:wildScroll_sectionBarPaddingLeft="@dimen/padding"
app:wildScroll_sectionBarPaddingRight="@dimen/padding"
app:wildScroll_sectionBarCollapseDigital="true"
app:wildScroll_sectionBarGravity="right"
app:wildScroll_sectionBarEnable="true"
app:wildScroll_popupEnable="true"
app:wildScroll_popupBackgroundColor="@color/colorSecondary"
app:wildScroll_popupPadding="@dimen/padding"
app:wildScroll_popupTextColor="@color/colorSecondaryLight"
app:wildScroll_popupTextSize="@dimen/textPopup"
tools:listitem="@layout/item_sample_list" />
Configure in code
val recyclerView = view.findViewById<WildScrollRecyclerView>(R.id.list)
with(recyclerView) {
layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
adapter = SampleSecondAdapter()
(adapter as SampleSecondAdapter).items = DataSource(resources).companies
textColor = R.color.colorSecondaryDark
textSize = R.dimen.textRegular
textTypeFace = Typeface.SANS_SERIF
highlightColor = R.color.colorSecondary
highlightTextSize = R.dimen.fastscroll_section_highlight_text_size
highlightTextFace = Typeface.DEFAULT_BOLD
sectionBarPaddingLeft = R.dimen.padding
sectionBarPaddingRight = R.dimen.padding
sectionBarCollapseDigital = false
sectionBarGravity = LEFT
sectionPopup = SectionLetterPopup(context,
textColorRes = R.color.colorSecondaryLight,
textSizeDimen = R.dimen.textPopup,
textTypeFace = Typeface.DEFAULT_BOLD,
backgroundResource = R.drawable.background_popup,
paddingRes = R.dimen.padding)
}
You can set your custom popup or use one of included into the library ones.
SectionLetterPopup
- This popup shows section name and can use custom background (backgroundResource
).
SectionCirclePopup
- Extends SectionLetterPopup
but use predefined round background.
StubSectionPopup
- It's just a stub. This popup can't be rendered.
If you want to implement your own section popup you should use interface com.appspell.wildscroll.sections.popup.SectionPopup
.
Section bar
wildScroll_sectionBarEnable
- show or hide section bar
wildScroll_sectionBarGravity
- section bar positon. (currently available: left and right)
wildScroll_textColor
- section text color
wildScroll_textSize
- section text size
wildScroll_highlightColor
- color for selected section
wildScroll_highlightTextSize
- text size for selected section
wildScroll_sectionBarBackgroundColor
- background color for section bar
wildScroll_sectionBarPaddingLeft
- left padding for section bar
wildScroll_sectionBarPaddingRight
- right padding for section bar
wildScroll_sectionBarCollapseDigital
- merge all of numeric sections into one (1..10 -> #)
Popup
wildScroll_popupEnable
- show or hide section popup
wildScroll_popupBackgroundDrawable
- popup background
wildScroll_popupBackgroundColor
- color for preselected background drawable (like tint)
wildScroll_popupPadding
- paddings for popup
wildScroll_popupTextColor
- section text color
wildScroll_popupTextSize
- section text size