Wednesday, 4 September 2013

android GridView inside ScrollView

Use the following class and enjoy :)

package com.alameentech.android.apps.tv_guide;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.GridView;

//public class NestedGridView extends GridView implements OnTouchListener, OnScrollListener  {

public class NestedGridView extends GridView {
boolean expanded = true;

public NestedGridView(Context context) {
super(context);
}

public NestedGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public NestedGridView(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.
// View.MEASURED_SIZE_MASK represents the largest height possible.
int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);

ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}

public void setIsExpanded(boolean expanded) {
this.expanded = expanded;
}


}

No comments:

Post a Comment