return offset;
return offset != pos ? offset : -1;
    protected int layoutRow(FlowView fv, int rowIndex, int pos)    {      View row = fv.getView(rowIndex);      int axis = fv.getFlowAxis();      int span = fv.getFlowSpan(rowIndex);      int x = fv.getFlowStart(rowIndex);      int offset = pos;      View logicalView = getLogicalView(fv);      // Special case when span == 0. We need to layout the row as if it had      // a span of Integer.MAX_VALUE.      if (span == 0)        span = Integer.MAX_VALUE;      while (span > 0)        {          if (logicalView.getViewIndex(offset, Position.Bias.Forward) == -1)            break;          View view = createView(fv, offset, span, rowIndex);          if (view == null)            break;          int viewSpan = (int) view.getPreferredSpan(axis);          row.append(view);          int breakWeight = view.getBreakWeight(axis, x, span);          if (breakWeight >= View.ForcedBreakWeight)            break;          x += viewSpan;          span -= viewSpan;          offset += (view.getEndOffset() - view.getStartOffset());        }      if (span < 0)        {          int flowStart = fv.getFlowStart(axis);          int flowSpan = fv.getFlowSpan(axis);          adjustRow(fv, rowIndex, flowSpan, flowStart);          int rowViewCount = row.getViewCount();          offset = row.getView(rowViewCount - 1).getEndOffset();        }      return offset;    }