【问题标题】:android material design with AppCompatActivity带有 AppCompatActivity 的 android 材料设计
【发布时间】:2015-12-07 05:18:55
【问题描述】:

为了支持 API 19 及以下版本,我让我的活动扩展了 AppCompatActivity。 我尝试为 v21 parent="android:Theme.Material" 设置以下父主题 当我尝试运行我的应用时,它给出了一个异常并告诉我使用 Activity 而不是 AppCompatActivity。

这是否意味着我必须创建新的活动来扩展 API 21 及更高版本的活动才能获得材料设计?还是有更好的办法?

【问题讨论】:

  • 要获得材料设计,您需要扩展 Theme.AppCompat
  • 是的,我读过,再读一遍
  • 你不想像这样直接扩展 Theme.Material;
  • 不知道为什么这被否决了。这实际上是一个很好的问题。 @Eenvincible 可能是对的,但 Google 的教程使用 Theme.Material。见developer.android.com/training/material/theme.html
  • 可以直接使用Material,但是必须有一个叫values-v21的文件夹

标签: android material-design android-appcompat


【解决方案1】:

这就是我设置我的主题.xml 文件以支持材料设计的方式:

<resources>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style>

</resources>

现在,在您的活动中,您可以像往常一样扩展 AppCompatActivity,您将获得您想要的外观!祝你好运!

【讨论】:

【解决方案2】:

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

android:Theme.Material 只能用于 API >= 21。

【讨论】:

    猜你喜欢
    • 2017-10-06
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多