2016-04-15 12 views
6

Sono nuovo per Android e un po 'confuso al momento.ho bisogno di AppCompatActivity e v7 Support Libraries con sdk 21 minimo?

Dopo aver impostato un nuovo progetto con min sdk 21 (Android 5.0) in Android Studio, per impostazione predefinita il mio main_activity estende AppCompatActivity che inizialmente non era un problema. Ho provato a impostare il materiale. Tema scuro come mostrato here ma @android:style/Theme.Material non funziona con AppCompatActivity. Funziona ora quando main_activity si estende appena Activity.

Devo AppCompatActivity con sdk min 21 se voglio utilizzare funzioni come Action Bar o è ok per estendere proprio da Activity, ho pensato che AppCompatActivity & v7 Support Libraries è lì per supportare le versioni SDK inferiori per essere in grado di utilizzare materiale di design , cosa mi sto perdendo?

Se AppCompatActivity non è necessario in sdk livello 21 e fino perché Android Studio lo imposta come predefinito anche se 21 è impostato come min sdk?

Credo che una domanda principale che ho è, qual è la migliore pratica per l'utilizzo del tema di progettazione materiale come spiegato here combinato con AppCompatActivity che Android Studio utilizza per impostazione predefinita.

+0

Can voi seleziona una risposta? –

+1

Si risponde solo parzialmente, non sono ancora sicuro delle migliori pratiche qui. E dal momento che voglio essere sul lato del risparmio, ho deciso di restare con Appcompat e smettere di trovare risposte. –

risposta

0

No, ma ci sono alcune belle viste nella libreria di supporto design e support-v4 che si potrebbe desiderare.

Design:

  • NavigationView

Support-v4:

  • DrawerLayout

E se si sta seguendo questa rotta e si desidera utilizzare "normale" Fragments e uno ViewPager, è necessario utilizzare support-v13.

+0

Grazie per la risposta, voglio assolutamente un navigatore-navigatore/NavigationView? Ma non dovrebbe essere possibile utilizzare in api 21 (5.0) in modo nativo senza utilizzare AppCompat? Sono anche molto insicuro su quale sia la migliore pratica per l'utilizzo di '@android: style/Theme.Material' perché non funziona con 'AppCompat' poiché questa è la cosa principale che voglio. –

+0

Sì, non ha bisogno di 'AppCompat' ha bisogno della libreria' design'. 'NavigationView' si trova nella libreria' design'. –

1

Le librerie di supporto sono necessarie se si desidera fornire funzionalità di SDK più recenti a piattaforme precedenti. Se il tuo minSDK = 5 allora hai bisogno di librerie di supporto solo se contengono qualcosa che non è incluso nell'SDK di Android

+0

Grazie, per chiarire Sto usando l'API SDK minimo 21 (Lollipop), ma Android Studio estende l'attività principale da AppCompatActivity di default che stranamente non è compatibile con il tema Material Design che è stato introdotto in API 21. Sto solo cercando di capire qual è la migliore pratica o come utilizzare il tema materiale nel modo giusto. –

1

Sì, dovresti usare librerie compat e fram di app.

Ci sono correzioni di bug che vengono raggruppate nelle librerie di supporto. In questo modo Google può correggere un bug in Android senza dover aspettare che le persone aggiornino i loro telefoni.

È buona norma utilizzare le librerie di supporto, tra cui AppCompat e FragmentCompat

Per quanto riguarda i temi, i vostri temi dovrebbe assomigliare a questa

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

vedere questo https://medium.com/google-developers/theming-with-appcompat-1a292b754b35#.988b91sl1

Problemi correlati