一.创建一个类
public class MyGroupView extends ViewGroup {
public MyGroupView(Context context) {
this(context, null);
}
public MyGroupView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public MyGroupView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//测量宽和高
measureChildren(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
@Override
protected void onLayout(boolean b, int i, int i1, int i2, int i3) {
//获得子控件的个数
int childCount = getChildCount();
//定义一个临时盖度变量
int startwidth = 0;
int startheight = 0;
//遍历每个view
for (int j = 0; j < childCount; j++) {
View v = getChildAt(j);
//给每个view设置自己的位置
v.layout(startwidth, startheight, v.getMeasuredWidth() + startwidth, v.getMeasuredHeight() + startheight);
startheight += v.getMeasuredHeight();
startwidth += v.getMeasuredWidth();
}
}
二.布局中调用
<com.bwei.www.monikao.MyGroupView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000">
<TextView
android:layout_width="50dp"
android:layout_height="30dp"
android:background="#4ccb6e" />
<TextView
android:layout_width="50dp"
android:layout_height="30dp"
android:background="#764ccb" />
<TextView
android:layout_width="50dp"
android:layout_height="30dp"
android:background="#cbc74c" />
</com.bwei.www.monikao.MyGroupView>