Android:在片段中使用GLSurfaceView

Android:在片段中使用GLSurfaceView,android,android-fragments,opengl-es,Android,Android Fragments,Opengl Es,在我以前的基于活动的解决方案中,设置如下所示: glSurfaceView = new GLSurfaceView(this); registerForContextMenu(glSurfaceView); if (supportsEs2) { glSurfaceView.setEGLContextClientVersion(2); renderer = new GLRenderer(context);

在我以前的基于活动的解决方案中,设置如下所示:

glSurfaceView = new GLSurfaceView(this);
        registerForContextMenu(glSurfaceView);
        if (supportsEs2) {
            glSurfaceView.setEGLContextClientVersion(2);
            renderer = new GLRenderer(context);
            glSurfaceView.setRenderer(renderer);
            rendererSet = true;
        }
        else {
            Toast.makeText(context, "This device does not support OpenGL ES 2.0.",Toast.LENGTH_LONG).show();
            return;
        }       
        setContentView(glSurfaceView);
因此,假设我想要相同的行为,如何在片段中使用渲染器

这是我最基本的片段:

public class SketchBoardFragment extends Fragment{

    public SketchBoardFragment(){}

    public static SketchBoardFragment newInstance(){
        SketchBoardFragment fragment = new SketchBoardFragment();
        return fragment;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView =     inflater.inflate(R.layout.fragment_sketch_board,container,false);
        return rootView;
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        ((MainActivity)activity).onSectionAttached(1);
    }
}

提前感谢。

天真的解决方案似乎正在发挥作用:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        /*View rootView = inflater.inflate(R.layout.fragment_sketch_board,container,false);
        return rootView;*/

        GLSurfaceView glSurfaceView = new GLSurfaceView(getActivity());
        GLRenderer renderer = new GLRenderer();
        glSurfaceView.setEGLContextClientVersion(2);
        glSurfaceView.setRenderer(renderer);

        return glSurfaceView;
    }

我没有使用碎片,所以我可能遗漏了一些东西。但是
GLSurfaceView
可以像任何其他视图一样成为布局的一部分。您通常从
GLSurfaceView
派生自己的视图,并在布局xml中使用该视图。这可能是真的,但从xml加载GL曲面时遇到问题。所以,如果有一个经验丰富的人能提供100%的有效解决方案,那就太好了?这是你的定制课程吗?