code: @Override
      public void preferenceChanged(View child, boolean width, boolean height)
      {
          if (parent != null)
          {
              parent.preferenceChanged(child, width, height);
          }
      }
docs: Specifies that a preference has changed. Child views can call this on the
  parent to indicate that the preference has changed. The root view routes
  this to invalidate on the hosting component.
  <p>
  This can be called on a different thread from the event dispatching
  thread and is basically unsafe to propagate into the component. To make
  this safe, the operation is transferred over to the event dispatching
  thread for completion. It is a design goal that all view methods be safe
  to call without concern for concurrency, and this behavior helps make
  that true.
  
  @param child
  the child view
  @param width
  true if the width preference has changed
  @param height
  true if the height preference has changed