2011-11-08 15 views
7

Sto sviluppando un'app con Android: minSdkVersion = "11". Da quello che so, ViewPager è implementato in Libreria di compatibilità. Devo riuscire a farlo funzionare nella mia richiesta con l'aggiunta di biblioteca android-supporto-v4.jar, ma ora sono costretto a utilizzareUtilizzo di android.app.Fragment con ViewPager in Android 3.0 o successivo

android.support.v4.app.FragmentActivity

perché Ho bisogno di getSupportFragmentManager() per FragmentPagerAdapter, invece del nuovo android.app.Activity getFragmentManager().

Inoltre ho bisogno di usare

android.support.v4.app.Fragment

invece di

android.app.Fragment

E ' funziona comunque, sicuramente non mi piace questo approccio. Distrugge la progettazione dell'app e non voglio avere la libreria di compatibilità nel mio progetto API 11 di livello.

Esistono altri modi nativi per utilizzare ViewPager in Honeycomb + app?

+0

La risposta accettata dovrebbe [modificare] (http://stackoverflow.com/a/16067755/1747491) ora che 'v13' viene rilasciato. – theblang

risposta

13

Potrebbe non essere stato il caso al momento in cui è stata dichiarata la risposta accettata, ma c'è import android.support.v13.app.FragmentStatePagerAdapter; nello sample code. Se si utilizza la libreria support-v13, il costruttore accetta una versione non supportata di FragmentManager. Si noti che lo ViewPager deve ancora provenire da v4.

Aggiungerò anche che v4 significa libreria di supporto per Android versione 4+ (Donut 1.6) e v13 significa libreria di supporto per Android versione 13+ (Honeycomb 3.2). Solo un fatto che non è stato immediatamente ovvio per me almeno. Significa che le API utilizzate in v4/v13 sono compatibili con e versioni tornate a quel punto.

7

Copy FragmentPagerAdapter nel codice e modificarlo per usare android.app.Fragment, ecc o implementare il proprio PagerAdapter te stesso, non dipende da frammenti a tutti.

+0

Vuoi dire che posso anche usare il codice ViewPager nella mia app, dopo averlo modificato? Dove posso trovare la fonte della libreria di compatibilità? È l'unico modo per Honeycomb, niente di più nativo o universale? – morphium

+0

Il download include la fonte. Se lo hai installato dal gestore dell'SDK, sarebbe in $ SDK_ROOT/extras/android/compatibility/v4/src. Non sai cosa intendi per 'nativo o universale', ma 'ViewPager' non fa parte dell'SDK Android, devi aggiungerlo al tuo progetto per usarlo, sia in libreria (jar) che in forma sorgente. –

+0

Ho copiato FragmentPagerAdapter e l'ho fatto funzionare con android.app.Fragment. Ma questo approccio presuppone ancora che io debba usare la libreria android-support-v4.jar. È un approccio normale? – morphium