对于我的应用程序,我希望将GLSurfaceView添加到我的Fragment Activity中的一个可滑动片段中。我的印象是他们像普通的视图一样工作,导致我尝试以下代码。
public override View OnCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
rootView =
inflater.Inflate(Resource.Layout.VisualisationFragment, container, false);
var fragmentLayout =
rootView.FindViewById<RelativeLayout>(Resource.Id.fragmentLayout);
surfaceView = new GLSurfaceView(this.Activity.BaseContext);
fragmentLayout.AddView(surfaceView);
return rootView;
}
当我逐步执行代码时,代码编译得很好并且看起来很好,直到返回rootView之后的某个地方,此时我得到一个“强制关闭”警报,没有例外。除了顶部的标题和底部的按钮外,GLSurface视图占据了大部分屏幕。我已经宣布在我的清单中使用OpenGL,是否还有其他任何我缺失的配置?
我的问题:
是否可以在片段里面使用OpenGL 一个FragmentActivity,如果是这样,如何在没有应用程序爆炸的情况下将surfaceView分配给我的rootView?
提前致谢。
答案 0 :(得分:0)
好的,所以我早些时候开始工作,但收效甚微,因为它太过于迟缓而无法证明有用。
要修复它,渲染器需要WAS,并且需要继承Java.Lang.Object和IRenderer以允许您实现Handler属性。
在每次扫描中销毁和重新创建GlSurfaceView都证明了太多的处理能力,以便在面板之间保持一致的平滑滑动,即使OnSurfaceCreate和OnSurfaceDestroy方法为空也是如此。