@Override protected Parcelable onSaveInstanceState() { Parcelable superSate = super.onSaveInstanceState(); SavedState savedState = new SavedState(superSate); int size = mHeaderViews.size(); int[] viewTops = new int[mStickHeaderMap.size()]; int index = 0; for (int i = 0; i < size; i++) { View view = mHeaderViews.get(i); if (!mStickHeaderMap.containsKey(view)) { continue; } viewTops[index] = view.getTop(); index++; if (index >= mStickHeaderMap.size()) { break; } } savedState.viewTops = viewTops; savedState.length = viewTops.length; return savedState; }