前言
最近接触了自定义ViewGroup,准备写一个自定义流式布局练练手,流式布局广泛应用于安卓开发中,许多APP的历史记录就应用了这一模式
一、如何实现?
需要去继承ViewGroup,重写ViewGroup的方法
二、使用步骤
1.重写onMeasure方法
代码如下:
/**
* 测量控件本身的大小 宽和高 根据子内容获取
*
* @param widthMeasureSpec 父布局给的宽
* @param heightMeasureSpec 父布局给的高
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
initLines();
//获取爷布局给父布局的模式和尺寸对应childView.measure(childWidthMeasureSpec, childHeightMeasureSpec);这句
int sizeWidth = MeasureSpec.getSize(widthMeasureSpec);
int modeWidth = MeasureSpec.getMode(widthMeasureSpec);
int sizeHeight = MeasureSpec.getSize(widthMeasureSpec);
int modeHeight = MeasureSpec.getMode(widthMeasureSpec);
//记录自己的高度和宽度
int width = 0;
int height = 0;
//记录每行被View占据的高度和宽度
int lineWidth = 0;
int lineHeight = 0;
//列表存储每行的View
List