void adjustMultiRowSpan(int spanNeeded,int nrows,int rowIndex){
  if ((rowIndex + nrows) > getCount()) {
    nrows=getCount() - rowIndex;
    if (nrows < 1) {
      return;
    }
  }
  int span=0;
  for (int i=0; i < nrows; i++) {
    RowView rv=getRow(rowIndex + i);
    span+=rv.getPreferredSpan(Y_AXIS);
  }
  if (spanNeeded > span) {
    int adjust=(spanNeeded - span);
    int rowAdjust=adjust / nrows;
    int firstAdjust=rowAdjust + (adjust - (rowAdjust * nrows));
    RowView rv=getRow(rowIndex);
    adjustments[rowIndex]=Math.max(adjustments[rowIndex],firstAdjust);
    for (int i=1; i < nrows; i++) {
      adjustments[rowIndex + i]=Math.max(adjustments[rowIndex + i],rowAdjust);
    }
  }
}

void adjustMultiRowSpan ( int spanNeeded , int nrows , int rowIndex ) { if ( ( rowIndex + nrows ) > getCount ( ) ) { nrows = getCount ( ) - rowIndex ; if ( nrows < 1 ) { return ; } } int span = 0 ; for ( int i = 0 ; i < nrows ; i ++ ) { RowView rv = getRow ( rowIndex + i ) ; span += rv . getPreferredSpan ( Y_AXIS ) ; } if ( spanNeeded > span ) { int adjust = ( spanNeeded - span ) ; int rowAdjust = adjust / nrows ; int firstAdjust = rowAdjust + ( adjust - ( rowAdjust * nrows ) ) ; RowView rv = getRow ( rowIndex ) ; adjustments [ rowIndex ] = Math . max ( adjustments [ rowIndex ] , firstAdjust ) ; for ( int i = 1 ; i < nrows ; i ++ ) { adjustments [ rowIndex + i ] = Math . max ( adjustments [ rowIndex + i ] , rowAdjust ) ; } } }
fixup preferences to accommodate a multi - row table cell if not already covered by existing preferences . this is a no - op if not all of the rows needed ( to do this check / fixup ) have arrived yet .
