为了支持 API 19 及更低版本,我让我的 Activity 扩展了 AppCompatActivity。
我尝试为 v21 parent="android:Theme.Material"
设置以下父主题
当我尝试运行我的应用程序时,它给出了一个异常并告诉我使用 Activity 而不是 AppCompatActivity。
这是否意味着我必须创建新的 Activity 来扩展 API 21 及更高版本的 Activity 才能获得 Material 设计?或者有更好的方法吗?
最佳答案
AppCompatActivity
需要一个AppCompat 主题。
使用不同的主题,比如 android:Theme.Material
你会得到
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
只需在 styles.xml 文件中定义一个主题:
<style name="AppTheme" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
通过 AppCompat 主题,您还可以在具有 API <21 的设备中使用 Material Design。
android:Theme.Material
只能与 API >= 21 一起使用。
关于android Material 设计与 AppCompatActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32510025/