2015-09-10 15 views
15

Per supportare l'API 19 e inferiore, le mie attività estendono AppCompatActivity. Ho provato a impostare il seguente tema principale per v21 parent="android:Theme.Material" Quando ho provato a eseguire la mia app, ha dato un'eccezione e mi ha detto di utilizzare Activity anziché AppCompatActivity.design di materiale Android con AppCompatActivity

Ciò significa che devo creare nuove attività che estendono l'attività per l'API 21 e sopra al fine di ottenere la progettazione del materiale? O c'è un modo migliore?

+2

Per ottenere materiale de firmare, è necessario estendere Theme.AppCompat – Eenvincible

+0

Sì, l'ho letto di nuovo –

+0

Non si desidera estendere Theme.Material direttamente come tale; – Eenvincible

risposta

8

Il AppCompatActivity richiede un tema AppCompat. Utilizzando un tema diverso, come il android:Theme.Material otterrete

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

basta definire un tema nel file styles.xml:

<style name="AppTheme" parent="Theme.AppCompat"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 

    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

Con il tema AppCompat si può avere il disegno materiale anche in un dispositivo API < 21.

Il android:Theme.Material possono essere usate solo con API> = 21.

3

Ecco come Ho installato il mio file themes.xml per supportare la progettazione di materiale:

<resources> 

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

</resources> 

Ora, nella vostra attività, è possibile estendere AppCompatActivity come al solito e si otterrà il look che si desidera! In bocca al lupo!

+0

Grazie per la risposta. Io stesso ero confuso da ciò quando leggevo il tutorial di Google http://developer.android.com/training/material/theme.html. Non so se forse c'è un tutorial di Google migliore là fuori che in realtà menziona il supporto all'indietro. – stevebot

+0

https://developer.android.com/training/material/compatibility.html vedere questo link –

Problemi correlati