2012-09-12 5 views
7

Nella documentazione per android.support.v4.app.FragmentManager:.getSupportFragmentManager() contro getFragmentManager() in Android 3.0+

"Static versione sostegno biblioteca del FragmentManager del framework usato per scrivere applicazioni che girano su piattaforme prima di Android 3.0. Quando è in esecuzione su Android 3.0 o versione successiva, questa implementazione è ancora utilizzata, non tenta di passare all'implementazione del framework. Consultare la documentazione di SDK framework per una panoramica della classe. "

Quindi, è necessario eseguire un controllo in fase di esecuzione e utilizzare il FragmentManager appropriato per la versione Android su cui è in esecuzione l'app? Chiama getFragmentManager() se su Android 3.0+ invece di getSupportFragmentManager()

risposta

12

Non c'è niente di sbagliato nell'usare getSupportFragmentManager() su Android 3.0+ finché hai la libreria di supporto importata. Se si desidera utilizzare getFragmentManager() per SDK 11+, fare clic qui; tieni presente che potresti avere un numero di codice pari a if/else con i controlli della versione.

+0

qualche idea qual è la differenza tra questi due gestori? Vantaggi e svantaggi? – user1159819

+0

La libreria di supporto è progettata per emulare esattamente la funzionalità. Ci sono alcune piccole differenze minori a metà strada [i documenti della biblioteca di supporto] (http://developer.android.com/tools/extras/support-library.html). – Eric

+0

getSupportFragmentManager() ha funzionato per me versione di destinazione 15 grazie mille .. –

5

Se si utilizza API> = 14, utilizzare getFragmentManager(). Se si desidera la compatibilità con i dispositivi sotto l'API 14, è possibile utilizzare getSupportFragmentManager(). Pertanto, getSupportFragmentManager() viene utilizzato per fornire nuove funzionalità a piattaforme meno recenti.

0

Se si utilizzano i pacchetti di supporto nel progetto o nell'app, è necessario utilizzare getSupportFragmentManager poiché in questo modo viene restituito il frammentManager per l'interazione con i frammenti associati a questa attività. D'altra parte, se non lo sei, puoi usare getFragmentManager. Dipende solo da ciò che stai utilizzando nella tua app.

Problemi correlati