android中部分控件具备maxHeight功能,如button等,可是对于ViewGroup类的控件,没有此属性,当咱们须要限制某些view的高度时,(好比限制屏幕下方对话框的最大高度)那么,就须要一种能够限制其子view最大高度的ViewGroup。如何为自定义ViewGroup添加一个最大高度的属性呢?其实很简单,主要就是使用onMeasure()函数,在函数中控制高度便可。android
先看下效果图:git
这是一个dialog,dialog中添加了共有20个button,若是不使用最大高度可控的viewgroup,则会充满整个屏幕。github
java代码实现以下:app
1 packagecn.carbs.android.maxheightview.library;2
3 /**
4 * Created by carbs on 2016/5/12.5 */
6 importandroid.content.Context;7 importandroid.content.res.TypedArray;8 importandroid.util.AttributeSet;9 importandroid.view.WindowManager;10 importandroid.widget.FrameLayout;11
12 /**
13 * 先判断是否设定了mMaxHeight,若是设定了mMaxHeight&#x