【发布时间】:2015-08-21 23:13:40
【问题描述】:
我的 Android 应用:
目标 API:22
最小 API:15
设备在:API 级别 22
上运行我不明白整个主题概念,
在我的manifest.xml中,我设置了android:theme="@style/AppTheme"
所有活动都使用这个主题
现在我的理解是,他们都使用名为 AppTheme 的主题,我现在可以通过在 styles.xml 中扩展其他主题来定义它
在我的styles.xml
我有这个
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
我的理解是AppCompat 主题允许我们在旧设备上使用更新的(比如材料主题)。
我在 API Level 22 和 API Level 15 上运行这个应用程序,它运行良好
现在当我把它改成
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Material">
<!-- Customize your theme here. -->
</style>
</resources>
它发出警告说这个主题只能在 API 21 或更高版本上使用,这是正确的,现在当我忽略警告并在 API 22 上运行它时它会崩溃。 为什么?
我还尝试将 AppTheme 的父级设置为 Holo、Light 等,它们都使 App 崩溃,为什么,请解释一下?
所有这些最终都会导致应用程序崩溃
<style name="AppTheme" parent="android:Theme.Translucent">
<style name="AppTheme" parent="android:Theme.Holo">
为什么这些都不行,Holo 是在 15 年推出的吧?
我正在使用 22 ,
您能否详细说明两者之间的区别 主题......,BaseTheme......,Android......主题名称
我正在运行 android studio 1.3 并使用最新版本(稳定版)的 SDK、SDK 构建和 SDK-Platform 工具。 谢谢!
【问题讨论】:
标签: android android-studio android-theme android-styles android-compatibility