Skip to content

Instantly share code, notes, and snippets.

@ebnrdwan
Created May 6, 2018 13:19
Show Gist options
  • Save ebnrdwan/65e2f7bf4ab106ae8305a463843a5b22 to your computer and use it in GitHub Desktop.
Save ebnrdwan/65e2f7bf4ab106ae8305a463843a5b22 to your computer and use it in GitHub Desktop.
package ebnrdwan.io.parentalApp.Utilities.CustomWidgets;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ListView;
public class ExpandableHeightListView extends ListView {
boolean expanded = true;
public ExpandableHeightListView(Context context) {
super(context);
}
public ExpandableHeightListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ExpandableHeightListView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public boolean isExpanded() {
return expanded;
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
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 setExpanded(boolean expanded) {
this.expanded = expanded;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment