/**
  * Sets the size of the view. This should cause layout of the view along the given axis, if it has
  * any layout duties.
  *
  * @param width the width >= 0
  * @param height the height >= 0
  */
 public void setSize(float width, float height) {
   updateMetrics();
   if ((int) width != getWidth()) {
     // invalidate the view itself since the childrens
     // desired widths will be based upon this views width.
     preferenceChanged(null, true, true);
     widthChanging = true;
   }
   super.setSize(width, height);
   widthChanging = false;
 }