2016-04-15 43 views
6

Jestem nowy na Androida i trochę zagubiony w tej chwili.Czy potrzebuję bibliotek obsługi AppCompatActivity i v7 z minimum sdk 21?

Po skonfigurowaniu nowego projektu z min sdk 21 (Android 5.0) w Android studio, domyślnie mój main_activity rozszerza AppCompatActivity, co na początku nie było problemu. Próbowałem skonfigurować materiał. Ciemny motyw, jak pokazano here, ale @android:style/Theme.Material nie działa z AppCompatActivity. Działa teraz, gdy main_activity po prostu rozciąga Activity.

Czy muszę AppCompatActivity z min SDK 21, jeśli chcę korzystać z funkcji takich jak Action Bar czy to jest ok, aby po prostu rozciągają się od Activity, myślałem, że AppCompatActivity & v7 Support Libraries ma wspierać niższe wersje SDK, aby móc użyć materiał projektowy , czego mi brakuje ?

Jeśli AppCompatActivity nie jest potrzebny na sdk na poziomie 21 i powyżej, dlaczego studio android ustawi je domyślnie, nawet jeśli 21 zostanie ustawione jako min sdk?

Zgaduję, że jedno z głównych pytań, jakie mam, to: jaka jest najlepsza praktyka w używaniu motywu Material Design, jak wyjaśniono here w połączeniu z AppCompatActivity, którego domyślnie używa Studio Android.

+0

Można wybierz odpowiedź? –

+1

To tylko częściowo odpowiedział, nadal nie jestem pewien najlepszej praktyki tutaj. A ponieważ chcę być po stronie oszczędzania postanowiłem trzymać się Appcompat i przestać szukać odpowiedzi. –

Odpowiedz

0

Nie, ale istnieje kilka ładnych widoków w bibliotece wsparcia design i support-v4, które mogą być potrzebne.

Projekt:

  • NavigationView

Support-v4:

  • DrawerLayout

Jeśli wybierasz się na tę trasę i chcesz użyć "normalnego" Fragments i ViewPager, musisz użyć support-v13.

+0

Dziękuję za odpowiedź, zdecydowanie chcę nawigacji-szuflady/NavigationView? Ale czy nie powinno to być możliwe do użycia w api 21 (5.0) natywnie bez użycia AppCompat? Nadal nie jestem pewien, jaka jest najlepsza praktyka używania "@android: style/Theme.Material", ponieważ nie działa z "AppCompat", ponieważ jest to najważniejsze, czego chcę. –

+0

Tak, nie potrzebuje 'AppCompat' potrzebuje biblioteki' design'. 'NavigationView' znajduje się w bibliotece' design'. –

1

Biblioteki pomocnicze są niezbędne, jeśli chcesz udostępnić nowsze wersje zestawów SDK starszym platformom. Jeśli twój minSDK = 5, potrzebujesz bibliotek pomocniczych tylko wtedy, gdy zawierają coś, co nie jest zawarte w 5-sowym SDK Androida

+0

Dziękuję, aby wyjaśnić, że używam minimum API SDK 21 (Lollipop), ale wciąż studio androida domyślnie rozszerza main_Activity z AppCompatActivity, co dziwnie nie jest zgodne z tematem Material Design, który został wprowadzony w API 21. Po prostu próbuję dowiedzieć się, co jest najlepszą praktyką lub jak korzystać z motywu materialnego we właściwy sposób. –

1

Tak, powinieneś używać bibliotek i fragmentów aplikacji compat.

Istnieją poprawki, które są dołączane do bibliotek wsparcia. W ten sposób Google może naprawić błąd Androida bez czekania, aż ludzie zaktualizują swoje telefony.

Jest najlepszą praktyką do korzystania z biblioteki wsparcia, w tym AppCompat i FragmentCompat

W odniesieniu do motywów, twoje motywy powinien wyglądać ten

<style name="AppTheme" parent="Theme.AppCompat">

zobaczyć ten https://medium.com/google-developers/theming-with-appcompat-1a292b754b35#.988b91sl1