android:Theme.Material.Light需要API级别21(当前最less8)

我想在我的应用程序中使用Material Theme,它的最小sdk版本为8.根据文档 – “材料主题只在Android 5.0(API级别21)及以上版本中可用v7 Support Libraries提供了材料devise样式的主题一些小部件和支持自定义调色板。“ 这是否意味着我可以使用它,如果我在项目中添加v7支持Libarary? 因为添加这个库后,我得到了以下错误:

android:Theme.Material.Light需要API级别21(当前最less8)。

或者,也许我明白了什么错误? 任何build议将不胜感激。 提前致谢。

为此,你需要有2个值文件夹。

一个默认情况下存在,另一个,你必须在你的res文件夹中创build并命名为values-v21。

在默认值文件夹的styles.xml中,使用Material主题以外的主题并在您创build的values-v21文件夹的styles.xml中使用Material主题。

Android手机将自动获取它支持的styles.xml。 如果手机支持Material Design(棒棒糖设备),则您的应用将使用材质主题(值为21的文件夹)。

如果它不(在手机运行较旧的Android版本),默认值文件夹将被使用。

您需要使用android:theme="@style/Theme.AppCompat.Light"主题来获取材质devise。

确保你的最小值是8,你的目标是21.你正在使用构build工具/ sdk 21。

Pedro Oliveira对于Theme.AppCompat 是正确的 ,但是一些重要的信息在这个答案中是缺less的。

标题为appcompat v21的博客文章:前棒棒糖设备的材料devise! 来自Android团队的Chris Banes可能最好的回答了如何在21日之前获得API级别的Material Theme的问题。

总结一下,你需要appcompat-v7依赖 :

 dependencies { ... compile "com.android.support:appcompat-v7:21.0.3" } 

之后,对于黑色版本作为您的基本主题,使用:

 <style name="AppTheme" parent="Theme.AppCompat"> </style> 

而对于轻型版本:

 <style name="AppTheme" parent="Theme.AppCompat.Light"> </style> 

如果你是AppCompat的新手,你需要知道的东西,比如:

所有的活动都必须从ActionBarActivity *中扩展。 它从v4支持库中的FragmentActivity扩展,因此您可以继续使用片段。

*注:最近,ActionBarActivity已被弃用,赞成AppCompatActivity 。

但是你真的应该阅读该博客的整个安装部分! (关于工具栏与操作栏的信息,以及一些评论也是你可能不应该错过的。)