Mam pytanie dotyczące bibliotek obsługi systemu Android, fragmentów, a konkretnie przykładu - ViewPager
klasy. Moim zamiarem jest stworzenie aplikacji o podobnej funkcjonalności jak próbka podana na stronie Android Developer ( http://developer.android.com/training/animation/screen-slide.html lub http://developer.android.com/ szkolenie / implementacja-nawigacja / lateral.html ). Analizując ich kod, zauważyłem, że korzystają z android.support.v4.app
biblioteki, która z moich badań jest jedynym sposobem na dostęp do ViewPager
klasy.
W mojej sytuacji nie interesuje mnie zgodność wsteczna. Minimalny poziom API to 14 (Ice Cream Sandwich), a docelowy poziom budowy to 4,2 Jelly Bean. W najprostszej formie moja aplikacja działa dokładnie tak samo, jak drugie demo, które podlinkowałem na stronie dla programistów Androida - po prostu przesuwając pomiędzy trzema kartami z zawartością w każdej.
Wszystkie artykuły / posty / odpowiedzi, które przeczytałem, wydają się faworyzować bibliotekę wsparcia v4 . Teraz moje, choć długo rozwarte, pytanie (pytania):
Jaki jest najlepszy sposób na ustrukturyzowanie mojej aplikacji - użycie
android.support.v4.app
, a tym samym użycie SupportFragments lub użycie fragmentów zawartych wandroid.app
- i dlaczego?Jeśli Fragmenty
android.app
są właściwą drogą, jaki jest optymalny sposób podejściaViewPagers
?Jeśli SupportFragmenty najlepiej nadają się do tego zadania, oszacowałbym, że mają taką samą funkcjonalność jak inne - więc po co w ogóle je mieć w środku
android.app
?
Mam nadzieję, że ktoś z bardziej zrozumiałym zrozumieniem może dać mi trochę wyjaśnienia, ponieważ jestem zdumiony ...
Fragments
jeśli używaszViewPager
, musisz skorzystać z biblioteki wsparciaSupportFragment
SupportFragment
nie jest klasą w pakiecie Android SDK ...SupportFragment
, mam na myśli jedynieFragment
klasę dostępną wandroid.support.v4.app
.ViewPager
wandroid.app
.Odpowiedzi:
Możesz używać
ViewPager
z natywnymi fragmentami zandroid.app
pakietu z adapterami z pakietu android.support.v13.app . W tym celu musisz użyć słoika wsparcia v13.Istnieją dwie wersje adapterów, które współpracują
ViewPager
, te wv4
pakiecie są przeznaczone do użytku z fragmentami pomocniczymi, a tev13
z fragmentami natywnymi.Powód, dla którego istnieją teraz dwie implementacje fragmentów, jest historyczny: Fragmenty w
android.app
pakiecie zostały wprowadzone tylko w systemie Android 3 na tablety, a biblioteka obsługi została utworzona, aby przenosić fragmenty na telefony ze starszymi wersjami. Na Androidzie 4 masz oba.Z własnego doświadczenia polecam korzystanie z fragmentów wsparcia, nawet podczas programowania dla Androida 4. Oto kilka powodów: Fragment czy fragment wsparcia?
źródło
android.app
nie ma,FragmentPagerAdapter
więc korzystanie z przeglądarki z Android.app.Fragment staje się niemożliwe jakiś pomysł tutaj? czy jest jakaś opcja starego pagera widoku? Aby dynamicznie zaczepić fragment dla podanych zakładekandroid.support.v4.app
pakiecie działa z fragmentami pomocniczymi, drugiandroid.support.v13.app
z fragmentami „normalnymi”android.app.Fragment
klasa jest przestarzała od Androida P ( link ), więcandroid.support.v4.app.Fragment
powinna być używana tylko wszędzie.źródło
Jeśli masz zamiar celować w API 11+, nie będziesz potrzebować biblioteki wsparcia [a Twoja rzeczywista aplikacja będzie przynajmniej mniejsza).
Jeśli chcesz coś obsługiwać przed Androidem 3.x, potrzebujesz biblioteki wsparcia.
Czy o to pytasz?
źródło
ViewPager
funkcjonalność i wyjaśnienie, dlaczego to rozwiązanie jest najlepsze.