我的Android应用
目标AP I: 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崩溃了,为什么,请解释一下?
所有这些最终都会导致App
崩溃<style name="AppTheme" parent="android:Theme.Translucent">
<style name="AppTheme" parent="android:Theme.Holo">
为什么这些不起作用,Holo在15年被引入了吗?
我正在使用22,
你可以详细说明它们之间的区别 主题.....,BaseTheme ....,Android ..... themeName
我正在运行android studio 1.3并使用SDK,SDK构建和SDK平台工具的最新版本(稳定版)。 谢谢!
答案 0 :(得分:3)
抱歉,我发现了这个问题,我的活动是扩展AppCompatActivity而不是一般活动,我现在就知道了
答案 1 :(得分:0)
使用自定义样式时,您必须照顾您提供的父级。尝试更改父主题,它可能会解决您的问题。