老师您好,onLayout方法你的代码写的有误
再做换行处理的时候重置行宽应该是lineWidth=childWidth(也就是子View的宽度),还需要重置view的集合的时候,你没有把当前view加入到集合里面。你的代码最后会导致每次换行丢失一个view
这是我的代码处理 //记录当前行的view
mAllViews.add(LineViews);
//记录当前行的高度
mLineHeight.add(lineHeight);
//重置行宽和行高
lineWidth=childWidth;
lineHeight=childHeight;
LineViews=new ArrayList<View>();
LineViews.add(child);
这是你的代码处理
// 记录LineHeight
mLineHeight.add(lineHeight);
// 记录当前行的Views
mAllViews.add(lineViews);
// 重置我们的行宽和行高
lineWidth = 0;
lineHeight = childHeight + lp.topMargin + lp.bottomMargin;
// 重置我们的View集合
lineViews = new ArrayList<View>();