5

dodawać i usuwać fragmenty tak:Usuń fragment krach

DODAJ

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); 

USUŃ

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); 

Jest szybka animacja slajdów. Fragment pochodzi od dołu i wraca na dół.

Mój problem pojawia się po naciśnięciu przycisku Wstecz (usuń fragment) i przed zakończeniem animacji dotknij działania, które pojawia się z tyłu.

Daje mi prosty błąd krytyczny sygnał 11 (częściej na Samsung Galaxy S3)

jakiś pomysł?

+0

Prawdopodobnie niezwiązane z danym problemem, ale fragmenty prowadzenie (który sklep kontekstowe) w statycznym pojemnika jest złą praktyką. Może to prowadzić do wycieku z kontekstu. – Dmide

+0

Reptification: to zdarza się tylko na Samsung Galaxy S3 (Android 4.3) nigdy na Nexus4 (android4.4). Dzieje się tak tylko podczas usuwania fragmentu. Tylko jeśli kliknę "fragment1 za", a usuwanie animacji "fragment2 powyżej" nadal trwa –

Odpowiedz

8

postanowiłem go, że był związany z onCreateAnimation(), że użyłem wiedzieć, kiedy animacja została zakończona

view.setLayerType(LAYER_TYPE_NONE, null); 

ta linia robił katastrofy. Wydaje się być związane z przyspieszeniem sprzętowym i najprawdopodobniej tylko na Androidzie 4.3

zobaczyć ten link: Disable hardware acceleration, backward compatibility