流式布局
public class FlowLayout extends ViewGroup {
public FlowLayout(Context context) {
super(context);
}
public FlowLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FlowLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
//获取控件的宽度
int width = getWidth();
//定义一个长亮行数
int row=0;
//子控件左边的坐标
int disWith=18;
for (int i = 0; i <getChildCount() ; i++) {
View view = getChildAt(i);
int measuredWidth = view.getMeasuredWidth();
int measuredHeight = view.getMeasuredHeight();
if (disWith+measuredWidth>width){
row++;
disWith=18;
}
view.layout(disWith,row*measuredHeight,measuredWidth+disWith,measuredHeight*(row+1));
disWith+=measuredWidth;
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
measureChildren(widthMeasureSpec,heightMeasureSpec);
}
}