docs: function getElementById(v, id) {
      if (!v) {
          return undefined;
      }
      if (v.id === id) {
          return view;
      }
      var retVal=undefined;
      var viewCallBack = function (child) {
          if (child.id === id) {
              retVal = child;
              return false;
          }
  
          // Android patch for ListView
          if (child._realizedItems && child._realizedItems.size !== child._childrenCount) {
              for (var key in child._realizedItems) {
                  if (child._realizedItems.hasOwnProperty(key)) {
                      // We return false, when we have a hit; so if we have a hit we can stop searching
                      if (!viewCallBack(child._realizedItems[key])) {
                          return false;
                      }
                  }
              }
          }
  
          return true;
      };
  
      viewBase.eachDescendant(v, viewCallBack);
  
      if (typeof retVal === "undefined") {
          // Android patch for ListView
          if (v._realizedItems && v._realizedItems.size !== v._childrenCount) {
              for (var key in v._realizedItems) {
                  if (v._realizedItems.hasOwnProperty(key)) {
                      // viewCallback will return false, if we found a match
                      if (!viewCallBack(v._realizedItems[key])) {
                          return retVal;
                      }
                  }
              }
          }
      }
  
      return retVal;
  }