继承自Theme.AppCompat *

时间:2013-07-31 14:45:25

标签: android android-theme

目前正致力于在支持库中迁移到ActionBar。目前正在尝试将我的旧主题迁移到Theme.AppCompat.Light.DarkActionBar继承但是进展不顺利。

如果我在清单中应用主题就可以了:

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

但是我收到一个运行时错误,指出LoginActivity(ActionBarActivity的子类)必须有一个继承自Theme.AppCompat的主题,当我执行以下操作时: 在styles.xml中:

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

并在清单中:

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

为什么会发生这种情况?我没有看到任何问题,因为AppTheme显然继承了AppCompat主题之一。

1 个答案:

答案 0 :(得分:10)

如果您的应用中有不同的values文件夹,对于不同的API级别,请确保文件夹中的每个主题都延伸到所需的Theme.AppCompat.*主题。