code: @NonNull
      public static Scene getSceneForLayout(@NonNull ViewGroup sceneRoot, int layoutId, @NonNull Context context) {
          SparseArray<Scene> scenes = (SparseArray<Scene>) sceneRoot.getTag(R.id.scene_layoutid_cache);
          if (scenes == null) {
              scenes = new SparseArray<Scene>();
              sceneRoot.setTag(R.id.scene_layoutid_cache, scenes);
          }
          Scene scene = scenes.get(layoutId);
          if (scene != null) {
              return scene;
          } else {
              scene = new Scene(sceneRoot, layoutId, context);
              scenes.put(layoutId, scene);
              return scene;
          }
      }
docs: Returns a Scene described by the resource file associated with the given
  <code>layoutId</code> parameter. If such a Scene has already been created,
  that same Scene will be returned. This caching of layoutId-based scenes enables
  sharing of common scenes between those created in code and those referenced
  by {@link TransitionManager} XML resource files.
  
  @param sceneRoot The root of the hierarchy in which scene changes
  and transitions will take place.
  @param layoutId  The id of a standard layout resource file.
  @param context   The context used in the process of inflating
  the layout resource.
  @return