diff --git a/library/src/main/java/com/etsy/android/grid/ExtendableListView.java b/library/src/main/java/com/etsy/android/grid/ExtendableListView.java index 259530f..8be0985 100644 --- a/library/src/main/java/com/etsy/android/grid/ExtendableListView.java +++ b/library/src/main/java/com/etsy/android/grid/ExtendableListView.java @@ -1048,7 +1048,7 @@ private boolean onTouchUpTap(final MotionEvent event) { mPendingCheckForTap : mPendingCheckForLongPress); } mLayoutMode = LAYOUT_NORMAL; - if (!mDataChanged && motionPosition >= 0 && mAdapter.isEnabled(motionPosition)) { + if (!mDataChanged && motionPosition >= 0 && mAdapter.isEnabled(motionPosition + mFirstPosition)) { mTouchMode = TOUCH_MODE_TAP; layoutChildren(); child.setPressed(true); @@ -1297,7 +1297,7 @@ private boolean moveTheChildren(int deltaY, int incrementalDeltaY) { } for (int i = 0; i < childCount; i++) { final View child = getChildAt(i); - if (child.getBottom() >= top) { + if (child.getBottom() >= top || i + firstPosition + 2 >= footerViewsStart) { break; } else { diff --git a/library/src/main/java/com/etsy/android/grid/StaggeredGridView.java b/library/src/main/java/com/etsy/android/grid/StaggeredGridView.java index 3e97811..620a5e0 100644 --- a/library/src/main/java/com/etsy/android/grid/StaggeredGridView.java +++ b/library/src/main/java/com/etsy/android/grid/StaggeredGridView.java @@ -996,6 +996,7 @@ private void onColumnSync() { private void setPositionColumn(final int position, final int column) { GridItemRecord rec = getOrCreateRecord(position); rec.column = column; + rec.isHeaderFooter = false; } private void setPositionHeightRatio(final int position, final int height) { @@ -1010,6 +1011,7 @@ private void setPositionHeightRatio(final int position, final int height) { private void setPositionIsHeaderFooter(final int position) { GridItemRecord rec = getOrCreateRecord(position); rec.isHeaderFooter = true; + rec.column = -1; } private GridItemRecord getOrCreateRecord(final int position) {