From 444d16b6620ece6cd6f6fa8fa674826d9b80bbd1 Mon Sep 17 00:00:00 2001 From: Lorenzo Stanco Date: Wed, 20 Apr 2016 17:37:35 +0200 Subject: [PATCH] Now shadows can be hidden using setShadowsVisibility() --- .../tablefixheaders/TableFixHeaders.java | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/library/src/main/java/com/inqbarna/tablefixheaders/TableFixHeaders.java b/library/src/main/java/com/inqbarna/tablefixheaders/TableFixHeaders.java index c8b1d14..b11e37a 100644 --- a/library/src/main/java/com/inqbarna/tablefixheaders/TableFixHeaders.java +++ b/library/src/main/java/com/inqbarna/tablefixheaders/TableFixHeaders.java @@ -57,6 +57,7 @@ public class TableFixHeaders extends ViewGroup { private final ImageView[] shadows; private final int shadowSize; + private boolean shadowsVisible = true; private final int minimumVelocity; private final int maximumVelocity; @@ -730,18 +731,35 @@ private int[] adjustFirstCellsAndScroll(int scroll, int firstCell, int sizes[]) } private void shadowsVisibility() { - final int actualScrollX = getActualScrollX(); - final int actualScrollY = getActualScrollY(); - final int[] remainPixels = { - actualScrollX, - actualScrollY, - getMaxScrollX() - actualScrollX, - getMaxScrollY() - actualScrollY, - }; - - for (int i = 0; i < shadows.length; i++) { - setAlpha(shadows[i], Math.min(remainPixels[i] / (float) shadowSize, 1)); + if (shadowsVisible) { + final int actualScrollX = getActualScrollX(); + final int actualScrollY = getActualScrollY(); + final int[] remainPixels = { + actualScrollX, + actualScrollY, + getMaxScrollX() - actualScrollX, + getMaxScrollY() - actualScrollY, + }; + + for (int i = 0; i < shadows.length; i++) { + if (shadows[i].getVisibility() != View.VISIBLE) shadows[i].setVisibility(View.VISIBLE); + setAlpha(shadows[i], Math.min(remainPixels[i] / (float) shadowSize, 1)); + } + } else { + for (int i = 0; i < shadows.length; i++) { + if (shadows[i].getVisibility() != View.GONE) shadows[i].setVisibility(View.GONE); + } + } + } + + public void setShadowsVisibility(final boolean visible) { + this.shadowsVisible = visible; + + // If ready, update visibility + if (adapter != null && heights != null && widths != null) { + shadowsVisibility(); } + } @TargetApi(Build.VERSION_CODES.HONEYCOMB)