android Material 设计与 AppCompatActivity

标签 android material-design android-appcompat

为了支持 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/

相关文章:

java - 带 Android 注释的自定义标题

android - 显示 SnackBar 时,按钮必须充当 FAB

android - appcompat_v7 错误

android-studio - 最小 sdk 9 的应用程序兼容版本

android - 使用 setOnClickFillInIntent 和 setPendingIntentTemplate 时,不会发生点击事件

java - Android Room 分页 - 如何读取两个表?

javascript - React js - 如何设置下拉菜单的显示大小?

android - ActionBarActivityDelegate 类问题......应用程序无法运行

android - 如何附加到 TextView 并从 TextView 中删除最后一个字母?

css - Angular Material 元素未正确加载