我已经设置了GLSurfaceView
并使用GLSurfaceView.Renderer
进行了渲染。我的应用使用android支持包中的片段。当我导航到一个新片段时,会调用surfaceDestroyed
,但是当我通过后退堆栈返回该片段时,GLSurfaceView
将不会呈现,对requestRender
的调用不会导致对onDraw
的调用。
我知道我需要在表面 View 上调用onResume
和onPause
,我是从托管片段执行此操作的,但似乎无法解决问题。有关htis方法的所有示例均引用该 Activity ,这可能是问题吗?如果是这样,您如何在片段内使用GLSurfaceView
。
任何见解都会受到赞赏,我很乐意发布代码,但对我来说似乎更是一个普遍的问题,
谢谢
最佳答案
这是我如何在片段中设置GLSurfaceView的方法:
onCreateView() {
glSurfaceView = new GLSurfaceView(getActivity());
...
}
onPause() {
if (glSurfaceView != null) { glSurfaceView.onPause(); }
...
}
onResume() {
if (glSurfaceView != null) { glSurfaceView.onResume(); }
...
}
}
因此,类似于您在 Activity 中要做的事情。这在我的用例中有效,因此好像它们确实在片段中起作用。在不知道您的代码是什么样的情况下很难说更多。