2015-09-10 20 views
15

API 19 ve altını desteklemek için benim faaliyetlerimin AppCompatActivity'i genişletmesine izin verdim. v21 parent="android:Theme.Material" için aşağıdaki ana temayı ayarlamaya çalıştım. Uygulamamı çalıştırmaya çalıştığımda bir istisna verdi ve AppCompatActivity yerine Activity kullanmamı söyledi.AppCompatActivity ile android materyal tasarımı

Bu, malzeme tasarımını elde etmek için API 21 ve üstü için Aktiviteyi genişleten yeni Faaliyetler oluşturmam gerektiği anlamına mı geliyor? Yoksa daha iyi bir yolu var mı?

<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> 

Şimdi, aktivitede, her zamanki gibi AppCompatActivity uzatabilir ve istediğiniz görünüyor alacak:

+2

malzeme DE almak için sign, Theme.AppCompat – Eenvincible

+0

'u genişletmeniz gerekiyor Evet, tekrar okudum –

+0

Theme.Material'ı doğrudan şu şekilde genişletmek istemiyorsunuz; – Eenvincible

cevap

8

AppCompatActivity, bir AppCompat teması gerektirir. Cihazda ayrıca Malzeme tasarımlara sahip olabilen AppCompat tema ile

<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> 

: Eğer

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

Sadece styles.xml dosyasında Tema tanımlamak alacak android:Theme.Material gibi farklı bir tema kullanma API ile < 21.

android:Theme.Material sadece API ile kullanmak olabilir> = 21

3

Bu benim malzeme tasarımı desteklemek için kurulum benim themes.xml dosyası var nasıl! İyi şanslar!

+0

adlı bir klasörün olması gerekir. Cevabınız için teşekkürler. Google'ın öğretici http://developer.android.com/training/material/theme.html adresini okurken kendimi bununla karıştırdım. Belki de geriye doğru destekten söz eden daha iyi bir Google öğreticisi olup olmadığından emin değil. – stevebot

+0

https://developer.android.com/training/material/compatibility.html bu bağlantıya bakın –

İlgili konular