为了账号安全,请及时绑定邮箱和手机立即绑定

老师您好,onLayout方法你的代码写的有误

再做换行处理的时候重置行宽应该是lineWidth=childWidth(也就是子View的宽度),还需要重置view的集合的时候,你没有把当前view加入到集合里面。你的代码最后会导致每次换行丢失一个view

  1. 这是我的代码处理 //记录当前行的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>();

 

正在回答

2 回答

//===========我是这样处理的=============//

if (lineWidth+childWidth>width-getPaddingLeft()-getPaddingRight()) {
    //记录当前行的view
    mAllViews.add(LineViews);
    //记录当前行的高度
    mLineHeight.add(lineHeight);
    //重置行宽和行高
    lineWidth=childWidth;
    lineHeight=childHeight;
    LineViews=new ArrayList<View>();
    LineViews.add(child);
    
   }else{
    lineWidth+=childWidth;
    lineHeight=Math.max(lineHeight, childHeight);
    LineViews.add(child);
   }

//===========你是这样处理的=============//

if (childWidth + lineWidth + lp.leftMargin + lp.rightMargin > width - getPaddingLeft() - getPaddingRight())
   {
    // 记录LineHeight
    mLineHeight.add(lineHeight);
    // 记录当前行的Views
    mAllViews.add(lineViews);

    // 重置我们的行宽和行高
    lineWidth = 0;
    lineHeight = childHeight + lp.topMargin + lp.bottomMargin;
    // 重置我们的View集合
    lineViews = new ArrayList<View>();
   }
   lineWidth += childWidth + lp.leftMargin + lp.rightMargin;
   lineHeight = Math.max(lineHeight, childHeight + lp.topMargin
     + lp.bottomMargin);
   lineViews.add(child);

非常抱歉,没仔细看你的代码,你的代码没错,再次向您表达歉意

0 回复 有任何疑惑可以回复我~

老师我又看了你的代码,发现你没有if()else{}语句(换行处理,不换行处理),所以不存在这种问题,抱歉

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
打造Android中的流式布局和热门标签
  • 参与学习       30485    人
  • 解答问题       56    个

酷炫的热门标签到底是怎么实现的呢,本教程会给你答案

进入课程

老师您好,onLayout方法你的代码写的有误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信