-
-
Save arungoyal/4d27bf6a94eedfab2686 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// http://pastebin.com/KMcwGrS8 | |
public class ScrollableGridView extends GridView { | |
boolean expanded = true; | |
public ScrollableGridView(Context context) | |
{ | |
super(context); | |
} | |
public ScrollableGridView(Context context, AttributeSet attrs) | |
{ | |
super(context, attrs); | |
} | |
public ScrollableGridView(Context context, AttributeSet attrs, | |
int defStyle) | |
{ | |
super(context, attrs, defStyle); | |
} | |
public boolean isExpanded() | |
{ | |
return expanded; | |
} | |
@Override | |
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) | |
{ | |
// HACK! TAKE THAT ANDROID! | |
if (isExpanded()) | |
{ | |
// Calculate entire height by providing a very large height hint. | |
// But do not use the highest 2 bits of this integer; those are | |
// reserved for the MeasureSpec mode. | |
int expandSpec = MeasureSpec.makeMeasureSpec( | |
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); | |
super.onMeasure(widthMeasureSpec, expandSpec); | |
ViewGroup.LayoutParams params = getLayoutParams(); | |
params.height = getMeasuredHeight(); | |
} | |
else | |
{ | |
super.onMeasure(widthMeasureSpec, heightMeasureSpec); | |
} | |
} | |
public void setExpanded(boolean expanded) | |
{ | |
this.expanded = expanded; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment