@@ -50,7 +50,7 @@ internal class StickyHeaderDecoration(
50
50
val topChildPosition = parent.getChildAdapterPosition(topChild)
51
51
if (topChildPosition == RecyclerView .NO_POSITION ) return // Again, empty list.
52
52
53
- val viewHolder = setHeaderViewHolder(topChildPosition, parent)
53
+ val viewHolder = setHeaderViewHolder(topChildPosition, parent) ? : return
54
54
val childInContact = getChildInContact(parent, viewHolder.itemView)
55
55
if (childInContact != null ) {
56
56
val childInContactPos = parent.getChildAdapterPosition(childInContact)
@@ -84,7 +84,7 @@ internal class StickyHeaderDecoration(
84
84
85
85
override fun onRequestDisallowInterceptTouchEvent (disallowIntercept : Boolean ) = Unit
86
86
87
- private fun setHeaderViewHolder (position : Int , parent : RecyclerView ): RecyclerView .ViewHolder {
87
+ private fun setHeaderViewHolder (position : Int , parent : RecyclerView ): RecyclerView .ViewHolder ? {
88
88
var viewHolder = headerViewHolder
89
89
if (viewHolder == null ) {
90
90
// Header view holder was not yet created
@@ -94,6 +94,10 @@ internal class StickyHeaderDecoration(
94
94
95
95
// Bind sticky header view holder data
96
96
val headerPos = callback.getHeaderPositionForItem(position)
97
+ if (headerPos == RecyclerView .NO_POSITION ) {
98
+ return null
99
+ }
100
+
97
101
callback.onBindViewHolder(viewHolder, headerPos)
98
102
if (stickyHeaderHeight == - 1 ) {
99
103
// Measure parent RecyclerView
0 commit comments