code: public void requestLayout() {
          mLayoutRequested = true;
  
          Log.v(Log.SUBSYSTEM.LAYOUT, TAG,
                  "requestLayout(%s): mParent: '%s', mParent.isLayoutRequested: %b",
                  getName(), mParent == null ? "<NULL>" : mParent.getName(),
                  mParent != null && mParent.isLayoutRequested());
  
          if (mParent != null && !mParent.isLayoutRequested()) {
              Log.v(Log.SUBSYSTEM.LAYOUT, TAG, "requestLayout(%s) requesting", getName());
              mParent.requestLayout();
              // new RuntimeException().printStackTrace();
          } else if (isInLayout()) {
              requestInnerLayout(this);
          }
      }
docs: Call this method to notify ancestors of this {@link Widget} that its
  dimensions, position, or orientation have been altered so that they can
  respond by running {@link #layout()} if needed.