【发布时间】:2023-03-14 09:26:01
【问题描述】:
首先,我创建了两种样式,一种是value,一种是value-21。
在 values/styles.xml 中是
<resources>
<style name="AppTheme" parent="Theme.AppCompat"></style>
</resources>
在 values-v21/styles.xml 中是
<resources>
<style name="AppTheme" parent="android:Theme.Material"></style>
</resources>
我的 gradle 文件 (app.gradle)
由于不推荐使用ActionBarActivity,所以我使用AppCompatActivity。
当我设置这两个样式值并在MainActivity 中扩展AppCompatActivity 时,出现异常:
java.lang.IllegalStateException: You need to use a Theme.AppCompat
theme (or descendant) with this activity.
我做了两个不同的更改,并且该异常不再出现:
- 扩展“android.app.Activity”而不是 v7.AppCompatActivity。
- 在 values-v21/styles.xml 中更改为“Theme.AppCompat”。
如果我想使用设计主题,是否应该扩展“android.app.Activity”?
或者,有没有其他使用材料设计主题的方法?
谢谢。
【问题讨论】:
-
Android L 可以使用 Theme.Meterial 如果使用 AppComatActivity 就使用 Theme.AppCompat
-
什么情况下会用到“android:Theme.Material”?
-
minSdkVersion 为 21
标签: android android-appcompat android-theme appcompatactivity