2013-07-31 12 views
9

Aktualnie pracuje nad migracją do ActionBar w bibliotekach pomocniczych. Obecnie próbuję przenieść stare wątki, aby odziedziczyć po Theme.AppCompat.Light.DarkActionBar, ale nie będzie to bardzo płynne.Dziedziczenie z kompozycji.AppCompat *

To jest w porządku, jeśli zastosować motyw w manifeście jako takie:

<activity 
    android:name="com.fitsby.LoginActivity" 
    android:screenOrientation="portrait" 
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar" > 
</activity> 

Ale pojawia się błąd wykonania, stwierdzając, że LoginActivity (podklasa ActionBarActivity) musi mieć motyw, który dziedziczy Theme.AppCompat , kiedy należy wykonać następujące czynności: w styles.xml:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:typeface">sans</item> 
</style> 

w manifeście:

<activity 
    android:name="com.fitsby.LoginActivity" 
    android:screenOrientation="portrait" 
    android:theme="@style/AppTheme" > 
</activity> 

Jakieś pomysły, dlaczego tak się dzieje? Nie widzę problemu, ponieważ AppTheme w oczywisty sposób dziedziczy z jednego ze schematów AppCompat.

+1

Czy masz wiele folderów wartości (jak dla różnych poziomów API)? Jeśli tak, czy użyłeś tego stylu we wszystkich z nich? – Luksprog

+1

To się stało, dzięki za to, że był wyłącznie odpowiedzialny za backend dev w projekcie, ale niedawno przejął prace projektowe od członka zespołu, który zdecydował się odejść, więc małe rzeczy jak to powodują trochę bólu głowy. Jeśli chciałbyś zmienić swój komentarz na odpowiedź, zaznaczę to jako poprawną odpowiedź. –

Odpowiedz

10

Jeśli w aplikacji masz inny folder values, dla różnych poziomów interfejsu API, upewnij się, że każdy z tych motywów z folderów rozszerza się z wymaganych motywów Theme.AppCompat.*.