2011-12-01 2 views
6

Sto tentando di personalizzare le transizioni FragmentTransaction e ho trovato il metodo setTransitionStyle. Riceve un ID risorsa xml per uno stile, ma non ho idea di come sarebbe la risorsa xml. So che è possibile definire gli stili di animazione per le attività e presumo che l'xml necessario per questo metodo sia simile, ma non riesco a trovare alcuna documentazione sul formato richiesto (ad esempio gli attributi/nodi xml necessari per farlo funzionare).Android FragmentTransaction setTransitionStyle

EDIT1 (questo è quello che sto facendo adesso nel mio FragmentActivity):

public void pushFolderFrag(Fragment folderFrag, String backStackID) { 
    FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
    transaction.replace(R.id.SplitView_MasterContainer, folderFrag); 
    transaction.addToBackStack(backStackID); 
    transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
    //transaction.setTransitionStyle(arg0);//what does the format for this resource look like?? 

    // Commit the transaction 
    transaction.commit(); 
} 
+1

Ci vuole un oggetto di animazione, anche se non è chiaro cosa (non ho scavato abbastanza in profondità nella sorgente Android). Quanto segue ha funzionato ma non ha fatto nulla: 'transaction.setTransitionStyle (android.R.attr.fragmentFadeExitAnimation);' – scorpiodawg

risposta

1

ho trovato la risposta su questo link

https://github.com/kedzie/Support_v4_NineOldAndroids

risorse stile di transizione

Specificare animazioni di transizione in una risorsa stile.

Creare una risorsa stile `res/valori/styles.xml'

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- Override standard Transitions with a Style --> 
    <style name="MyTransitionStyle"> 
     <item name="fragmentFadeEnterAnimation">@animator/fade_enter</item> 
     <item name="fragmentFadeExitAnimation">@animator/fade_exit</item> 
     <item name="fragmentOpenEnterAnimation">@animator/flip_left_in</item> 
     <item name="fragmentOpenExitAnimation">@animator/flip_left_out</item> 
     <item name="fragmentCloseEnterAnimation">@animator/flip_right_in</item> 
     <item name="fragmentCloseExitAnimation">@animator/flip_right_out</item> 
    </style> 
</resources> 

Specificare la risorsa e la transizione nella transazione

tx.setTransitionStyle(R.style.MyTransitionStyle); 
tx.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);