@Override
    public void addView(View child, int index) {
        if (child instanceof ViroView) {
            // only add a view to the childViews if it's a ViroView. This function is called
            // by the single argument addView(child) method.
            super.addView(child, index);
            return;
        } else if (!(child instanceof VRTScene)) {
            throw new IllegalArgumentException("Attempted to add a non-scene element [" + child.getClass().getSimpleName()
                    + "] to SceneNavigator!");
        }

        VRTScene childScene = (VRTScene)child;
        mSceneArray.add(index, childScene);
        childScene.setPlatformInformation(mViroView.getPlatform(), mViroView.getHeadset(),
                mViroView.getControllerType());
        // Adding the scene view can occur after the prop type is set on the bridge.
        // Thus, refresh the selection of the current scene as needed.
        if (index == mSelectedSceneIndex){
            setCurrentSceneIndex(mSelectedSceneIndex);
        }

        mViewAdded = true;
        super.addView(child, index);
    }
We may need to reload the materials if the renderer was destroyed, but the app was not
and the user resumed.
android/viro_bridge/src/main/java/com/viromedia/bridge/component/VRT3DSceneNavigator.java