Prevent header decoration from passing NO_POSITION to getHeaderId.

fork-5.53.8
Alex Hart 2022-08-30 13:44:12 -03:00 zatwierdzone przez Greyson Parrelli
rodzic 8bd89d1e63
commit 6cb359b2d0
1 zmienionych plików z 4 dodań i 1 usunięć

Wyświetl plik

@ -131,13 +131,16 @@ public class StickyHeaderDecoration extends RecyclerView.ItemDecoration {
final View child = parent.getChildAt(translatedChildPosition(parent, layoutPos)); final View child = parent.getChildAt(translatedChildPosition(parent, layoutPos));
final int adapterPos = parent.getChildAdapterPosition(child); final int adapterPos = parent.getChildAdapterPosition(child);
if (adapterPos == RecyclerView.NO_POSITION) {
continue;
}
final long key = adapter.getHeaderId(adapterPos); final long key = adapter.getHeaderId(adapterPos);
if (key == StickyHeaderAdapter.NO_HEADER_ID) { if (key == StickyHeaderAdapter.NO_HEADER_ID) {
start = layoutPos + 1; start = layoutPos + 1;
} }
if (adapterPos != RecyclerView.NO_POSITION && ((layoutPos == start && sticky) || hasHeader(parent, adapter, adapterPos))) { if (((layoutPos == start && sticky) || hasHeader(parent, adapter, adapterPos))) {
View header = getHeader(parent, adapter, adapterPos).itemView; View header = getHeader(parent, adapter, adapterPos).itemView;
c.save(); c.save();
final int left = parent.getLeft(); final int left = parent.getLeft();