void checkMultiColumnCell(int axis,int col,int ncols,View v){
  long min=0;
  long pref=0;
  long max=0;
  for (int i=0; i < ncols; i++) {
    SizeRequirements req=columnRequirements[col + i];
    min+=req.minimum;
    pref+=req.preferred;
    max+=req.maximum;
  }
  int cmin=(int)v.getMinimumSpan(axis);
  if (cmin > min) {
    SizeRequirements[] reqs=new SizeRequirements[ncols];
    for (int i=0; i < ncols; i++) {
      SizeRequirements r=reqs[i]=columnRequirements[col + i];
      r.maximum=Math.max(r.maximum,(int)v.getMaximumSpan(axis));
    }
    int[] spans=new int[ncols];
    int[] offsets=new int[ncols];
    SizeRequirements.calculateTiledPositions(cmin,null,reqs,offsets,spans);
    for (int i=0; i < ncols; i++) {
      SizeRequirements req=reqs[i];
      req.minimum=Math.max(spans[i],req.minimum);
      req.preferred=Math.max(req.minimum,req.preferred);
      req.maximum=Math.max(req.preferred,req.maximum);
    }
  }
  int cpref=(int)v.getPreferredSpan(axis);
  if (cpref > pref) {
    SizeRequirements[] reqs=new SizeRequirements[ncols];
    for (int i=0; i < ncols; i++) {
      SizeRequirements r=reqs[i]=columnRequirements[col + i];
    }
    int[] spans=new int[ncols];
    int[] offsets=new int[ncols];
    SizeRequirements.calculateTiledPositions(cpref,null,reqs,offsets,spans);
    for (int i=0; i < ncols; i++) {
      SizeRequirements req=reqs[i];
      req.preferred=Math.max(spans[i],req.preferred);
      req.maximum=Math.max(req.preferred,req.maximum);
    }
  }
}

void checkMultiColumnCell ( int axis , int col , int ncols , View v ) { long min = 0 ; long pref = 0 ; long max = 0 ; for ( int i = 0 ; i < ncols ; i ++ ) { SizeRequirements req = columnRequirements [ col + i ] ; min += req . minimum ; pref += req . preferred ; max += req . maximum ; } int cmin = ( int ) v . getMinimumSpan ( axis ) ; if ( cmin > min ) { SizeRequirements [ ] reqs = new SizeRequirements [ ncols ] ; for ( int i = 0 ; i < ncols ; i ++ ) { SizeRequirements r = reqs [ i ] = columnRequirements [ col + i ] ; r . maximum = Math . max ( r . maximum , ( int ) v . getMaximumSpan ( axis ) ) ; } int [ ] spans = new int [ ncols ] ; int [ ] offsets = new int [ ncols ] ; SizeRequirements . calculateTiledPositions ( cmin , null , reqs , offsets , spans ) ; for ( int i = 0 ; i < ncols ; i ++ ) { SizeRequirements req = reqs [ i ] ; req . minimum = Math . max ( spans [ i ] , req . minimum ) ; req . preferred = Math . max ( req . minimum , req . preferred ) ; req . maximum = Math . max ( req . preferred , req . maximum ) ; } } int cpref = ( int ) v . getPreferredSpan ( axis ) ; if ( cpref > pref ) { SizeRequirements [ ] reqs = new SizeRequirements [ ncols ] ; for ( int i = 0 ; i < ncols ; i ++ ) { SizeRequirements r = reqs [ i ] = columnRequirements [ col + i ] ; } int [ ] spans = new int [ ncols ] ; int [ ] offsets = new int [ ncols ] ; SizeRequirements . calculateTiledPositions ( cpref , null , reqs , offsets , spans ) ; for ( int i = 0 ; i < ncols ; i ++ ) { SizeRequirements req = reqs [ i ] ; req . preferred = Math . max ( spans [ i ] , req . preferred ) ; req . maximum = Math . max ( req . preferred , req . maximum ) ; } } }
check the requirements of a table cell that spans multiple columns .
