重新启动时,GLSurfaceView内部片段无法呈现

Ian*_*lis 59 android opengl-es glsurfaceview android-fragments

我有一个GLSurfaceView设置和渲染预期使用a GLSurfaceView.Renderer.我的应用程序使用Android支持包中的片段.当我导航到一个新的片段surfaceDestroyed被调用但是当我通过backstack回到片段时GLSurfaceView将不会呈现,调用requestRender不会导致onDraw调用.

我知道我需要调用onResumeonPause表面视图,我从托管片段做这个,但它似乎没有解决问题.关于htis方法的所有例子都参考了活动,这可能是问题吗?如果是这样,你如何使用GLSurfaceView片段内部.

非常感谢任何见解,我很高兴发布代码,但它似乎更像是一个普遍的问题,

谢谢

Zeu*_*ics 1

我不使用片段,但如果 glsurface 被破坏,也许必须再次创建 OpenGLRenderer 的实例并重新设置到 glsurface,此代码在更改方向并重新创建所有屏幕的活动中为我工作,在这种情况下我必须再次设置布局的contentview以重置glsurfaceview:

\n\n
view.onPause(); \nsetContentView(R.layout.slidegl);\nview = (GLSurfaceView) this.findViewById(R.id.glSurface);\nrenderer = new OpenGLRenderer();\nview.setRenderer(renderer); \nview.onResume();\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您想\xc2\xb4t重新启动并设置视图的所有内容,请尝试创建一个新的GLSurface对象:

\n\n
this.view = new GLSurfaceView(); \n
Run Code Online (Sandbox Code Playgroud)\n