Created
May 6, 2018 13:17
-
-
Save ebnrdwan/11f9163e30bcfeb1a7b8717c5182dd42 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
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