RajawaliFragment不工作?

时间:2015-01-09 21:18:31

标签: rajawali

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

不幸的是我找不到使用RajawaliFragment和稳定版0.9的例子,还有更多内容吗?

我的RajawaliFragment:

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一起正常工作。此外,片段确实附加了,但没有调用任何渲染器方法(当然,除了构造函数)。

2 个答案:

答案 0 :(得分:0)

我能够使用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,但我只是在使用示例项目。在我的实际代码中,我只有真正的片段。
  3. 整个示例应用程序使用Fragments,因此应该给你一些很好的例子。确保你的MyRenderer扩展了RajawaliRenderer。

答案 1 :(得分:0)

我错过的是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;
    }
}