我已经设置了GLSurfaceView并使用GLSurfaceView.Renderer进行了渲染。我的应用使用android支持包中的片段。当我导航到一个新片段时,会调用surfaceDestroyed,但是当我通过后退堆栈返回该片段时,GLSurfaceView将不会呈现,对requestRender的调用不会导致对onDraw的调用。

我知道我需要在表面 View 上调用onResumeonPause,我是从托管片段执行此操作的,但似乎无法解决问题。有关htis方法的所有示例均引用该 Activity ,这可能是问题吗?如果是这样,您如何在片段内使用GLSurfaceView

任何见解都会受到赞赏,我很乐意发布代码,但对我来说似乎更是一个普遍的问题,

谢谢

最佳答案

这是我如何在片段中设置GLSurfaceView的方法:

onCreateView() {
    glSurfaceView = new GLSurfaceView(getActivity());
   ...
}

onPause() {
    if (glSurfaceView != null) { glSurfaceView.onPause(); }
    ...
}

onResume() {
    if (glSurfaceView != null) { glSurfaceView.onResume(); }
    ...
}

}

因此,类似于您在 Activity 中要做的事情。这在我的用例中有效,因此好像它们确实在片段中起作用。在不知道您的代码是什么样的情况下很难说更多。

09-13 11:47
查看更多