5

ich hinzufügen und entfernen Fragmente wie folgt aus:entfernen Fragment Absturz

ADD

getSherlockActivity().getSupportFragmentManager() 
           .beginTransaction() 
           .setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_top, R.anim.slide_in_top, R.anim.slide_out_bottom) 
           .add(R.id.fragment_explore, fragment) 
           .addToBackStack(null) 
           .commit(); 
ActivityMain.BACKSTACK_EXPLORE.add(fragment); 

REMOVE

Fragment depopFragment = BACKSTACK_EXPLORE.get(BACKSTACK_EXPLORE.size() - 1); 
        getSupportFragmentManager().beginTransaction() 
               .setCustomAnimations(R.anim.slide_in_top, R.anim.slide_out_bottom, R.anim.slide_in_bottom, R.anim.slide_out_top) 
               .remove(depopFragment) 
               .commit(); 
        BACKSTACK_EXPLORE.remove(depopFragment); 

Es ist eine schnelle Dia-Animation. Das Fragment kommt von unten und geht zurück nach unten.

Mein Problem ist, wenn Sie die Zurück-Taste drücken (entpacken Sie das Fragment) und bevor die Animation beendet ist, berühren Sie die Aktivität, die dahinter erscheint.

Es gibt mir einen einfachen Fatal Signal 11 Fehler (häufiger auf samsung galaxy s3)

Jede Idee?

+0

Wahrscheinlich in keinem Zusammenhang mit Ihrem Problem, aber halten Fragmente (die Speicher Context) in einem statischen Behälter ist eine schlechte Praxis. Dies kann zu einem Kontextleck führen. – Dmide

+0

Reptification: das passiert nur auf Samsung Galaxy S3 (Android 4.3) nie auf Nexus4 (Android4.4). Dies geschieht nur beim Entfernen des Fragments. Nur wenn ich auf das "fragment1 behind" klicke, während die entfernte Animation von "fragment2 above" noch läuft –

Antwort

8

ich es gelöst, es wurde onCreateAnimation Zusammenhang(), die ich weiß, verwendet, wenn die Animation

view.setLayerType(LAYER_TYPE_NONE, null); 

diese Linie tat den Absturz beendet war. Es scheint Hardware-Beschleunigung und höchstwahrscheinlich nur auf Android 4.3

siehe diesen Link bezogen werden: Disable hardware acceleration, backward compatibility