RajawaliFragment 不工作?

RajawaliFragment not working?

我想创建一个在其他 GUI 元素(尤其是任务栏)中具有 3D 输出的应用程序。在我使用 RajawaliActivity(教程 1)获得示例后,我无法使用 RajawaliFragment 做同样的事情。

很遗憾,我找不到使用 RajawaliFragment 和稳定版本 0.9 的示例,还有更多内容吗?

我的拉贾瓦利片段:

public class MyFragment extends RajawaliFragment {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        MyRenderer renderer = new MyRenderer(getActivity());
        renderer.setSurfaceView(mSurfaceView);

        super.setRenderer(renderer);
    }
}

渲染器(名称除外)是示例代码的副本,并且与 RajawaliActivity 一起工作得很好。此外,该片段确实已附加,但渲染器方法的 none 被调用(当然构造函数除外)。

我能够使用 RajawaliExamples 项目中的示例片段之一来工作。

我采取的步骤是:

  1. 在我的 MainActivity 中,我扩展了 ActionBarActivity,在我的 onCreate() 中,我能够将片段添加到我的容器中:

    public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
    
        ObjectPickingFragment testFragment = new ObjectPickingFragment();
        getFragmentManager().beginTransaction()
            .add(R.id.container, testFragment, "testFragment")
            .commit();
    }
    }
    
  2. 我的 ObjectPickingFragment 只是示例中的一个示例片段。它继承自 AExampleFragment,但这只是 b/c 我正在处理示例项目。在我的实际代码中,我只有我真正的片段。

整个示例应用程序都使用片段,因此应该可以为您提供一些很好的示例。确保您的 MyRenderer 扩展了 RajawaliRenderer。

我错过的是 onCreateView 方法。我以为这只是我不需要的加载屏幕,所以我省略了它,但我实际上需要做的是:

public class MyFragment extends RajawaliFragment {
    public void onCreate(Bundle savedInstanceState) {
        // this part was fine
    }

    public View onCreateView(LayoutInflater i, ViewGroup c, Bundle b) {
        return mSurfaceView;
    }
}