/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.LinearLayout; /** * * @author sihai * */ public class FullSizeLinearLayout extends LinearLayout { private int mMaxHeight; public FullSizeLinearLayout(Context context) { this(context, null); init(context, null); } public FullSizeLinearLayout(Context context, AttributeSet attributeset) { super(context, attributeset); init(context, attributeset); } public FullSizeLinearLayout(Context context, AttributeSet attributeset, int i) { super(context, attributeset, i); init(context, attributeset); } private void init(Context context, AttributeSet attributeset) { mMaxHeight = 0x7fffffff; TypedArray typedarray = context.obtainStyledAttributes(attributeset, new int[] { 0x1010120 }); mMaxHeight = typedarray.getDimensionPixelSize(0, 0); typedarray.recycle(); } protected final void onMeasure(int i, int j) { if(mMaxHeight > 0) { if(android.view.View.MeasureSpec.getMode(i) == 0x80000000) i = android.view.View.MeasureSpec.makeMeasureSpec(android.view.View.MeasureSpec.getSize(i), 0x40000000); if(android.view.View.MeasureSpec.getMode(j) == 0x80000000) j = android.view.View.MeasureSpec.makeMeasureSpec(Math.min(android.view.View.MeasureSpec.getSize(j), mMaxHeight), 0x40000000); } else { i = android.view.View.MeasureSpec.makeMeasureSpec(android.view.View.MeasureSpec.getSize(i), 0x40000000); j = android.view.View.MeasureSpec.makeMeasureSpec(android.view.View.MeasureSpec.getSize(j), 0x40000000); } super.onMeasure(i, j); } }