Frage

Ich habe eine Aktivität und hatte die Inhaltsansicht der Aktivität als "R.Layout.main.xml" festgelegt. Und ich habe eine andere Klasse, die mit OpenGL erstellte Animation enthält. Jetzt muss ich diese Animation im Hintergrund der Aktivität verwenden.

Der Code ist so

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_pixie);

    mGLView = new ClearGLSurfaceView(this);
    setContentView(mGLView);
 }

Aber meine App stürzt ab. Wie kann ich das lösen.

War es hilfreich?

Lösung

Wenn Sie das anrufen setContentView() Ein zweites Mal ersetzen Sie das, was beim ersten Mal festgelegt worden war, und hinterlassen Sie nur den Hintergrund. Der Absturz ist höchstwahrscheinlich, weil Sie von den Elementen im Hauptlayout abhängig sind, das entfernt wird.

Anstatt zu rufen setContentView() Zweimal sollten Sie die einschließen GLSurfaceView im Hauptlayout. Unten finden Sie ein Beispiel dafür, wie dies getan werden kann:

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent>
    <your.application.package.ClearGLSurfaceView
         android:layout_width="match_parent"
         android:layout_width="match_parent"/>
    <!--put the rest of your layout here, i.e the contents of the original R.layout.main_pixie-->
</FrameLayout>

Dann können Sie dieses Layout in Ihr laden onCreate() Wie üblich (main_pixie_new bezieht sich auf das obige XML, habe ich ihm nur diesen Namen gegeben, um die Dinge so klar wie möglich zu halten):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_pixie_new);
 }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top