177

Ho una domanda riguardante le librerie di supporto Android, i frammenti e, come esempio specifico, la classe ViewPager. La mia intenzione è di creare un'app con funzionalità simili all'esempio fornito sul sito web degli sviluppatori Android (http://developer.android.com/training/animation/screen-slide.html o http://developer.android.com/training/implementing-navigation/lateral.html). Guardando nel loro codice, ho notato che utilizzano la libreria android.support.v4.app, che dalla mia ricerca è l'unico modo per accedere alla classe ViewPager.Frammenti di Android.app vs. android.support.v4.app utilizzando ViewPager?

Nella mia situazione, non ho alcun interesse per la retrocompatibilità. Il livello API minimo è 14 (Ice Cream Sandwich) e l'obiettivo di build è 4.2 Jelly Bean. Nella sua forma più semplice, la mia app funziona esattamente come la seconda demo che ho linkato sul sito web di Android Dev: basta scorrere tra tre schede con contenuto in ciascuna.

Tutti gli articoli/post/risposte che ho letto sembrano favorire fortemente la libreria di supporto v4. Ora per la mia, anche se prolisso, domanda (s):

  1. Qual è il modo migliore per strutturare la mia domanda - usando android.support.v4.app, e quindi utilizzando SupportFragments, o per usare i Frammenti forniti nel android.app - e perché?

  2. Se frammenti da android.app sono la strada da percorrere, qual è il modo ottimale per avvicinarsi allo ViewPagers?

  3. Se SupportFragments è il più adatto all'attività, stimerei che abbiano la stessa funzionalità dell'altro, quindi qual è lo scopo di averli tutti all'interno di android.app?

Speriamo che qualcuno con una più chiara comprensione mi può dare un po 'di chiarezza perché sto ho provato tutte ...

+1

non è possibile utilizzare 'Fragments' se si utilizza il' ViewPager' è necessario utilizzare la libreria di supporto '' SupportFragment' – tyczj

+1

SupportFragment' non è una classe in Android SDK ... – Karakuri

+2

@ Karakuri Scusa per la confusione; Non intendo una classe letterale 'SupportFragment', mi riferisco semplicemente alla classe' Fragment' disponibile in 'android.support.v4.app'. – jonstaff

risposta

183

È possibile utilizzare ViewPager con frammenti nativi dal pacchetto android.app con gli adattatori dal pacchetto android.support.v13.app. Devi usare il vaso di supporto v13 per quello.

ci sono due versioni degli adattatori che funzionano con ViewPager, quelli nel pacchetto v4 sono destinati ad essere utilizzati con i frammenti di supporto, quelli in v13 con frammenti nativi.

Il motivo per cui ora ci sono due implementazioni frammento è storico: Frammenti nel pacchetto android.app sono stati introdotti con Android 3 solo per tablet e la libreria di supporto è stato creato per portare i frammenti ai telefoni che eseguono versioni precedenti. Su Android 4 hai entrambi.

Dalla mia esperienza raccomanderei l'utilizzo di frammenti di supporto, anche durante lo sviluppo per Android 4.Ecco alcuni motivi: Fragment or Support Fragment?

+3

Grazie per questo! So di essere in ritardo per la festa, ma questa risposta mi ha aiutato molto. – Kyle

+0

support.v13 funziona per ViewPager ... fino a quando non si tenta di utilizzare ViewPager in un DialogFragment :-( – SteelBytes

+0

'android.app' non ha' FragmentPagerAdapter', quindi diventa impossibile utilizzare viewpager con android.app.Fragment? Any idea qui? c'è qualche opzione per il vecchio cercapersone vista? Così come per collegare dinamicamente il frammento per le schede date – Nikhil

1

Se avete intenzione di indirizzare API 11+, non sarà necessario il supporto libreria [e il tuo vero apk sarà più piccolo, almeno).

Se si desidera supportare qualsiasi cosa prima di Android 3.x, è necessaria la libreria di supporto.

È questo che stai chiedendo?

+9

è necessario utilizzare la libreria di supporto per utilizzare il ViewPager che è quello che sta chiedendo su – tyczj

+0

@Matt Grazie per la risposta, ma sto cercando la soluzione migliore che incorpori la funzionalità 'ViewPager', e una spiegazione del perché quella soluzione è meglio. – jonstaff

Problemi correlati