我想在我的应用程序中使用Material Theme,其最低sdk版本为8.根据文档 - "材料主题仅适用于Android 5.0(API级别21)及更高版本。 v7支持库为主题提供了一些小部件的材料设计样式,并支持自定义调色板。"如果我在项目中添加v7支持库,这是否意味着我可以使用它?因为添加此库后我收到以下错误:
android:Theme.Material.Light需要API级别21(当前最小值为8)。
或者我理解错了什么?任何建议将不胜感激。提前谢谢。
答案 0 :(得分:41)
为此你需要有2个值文件夹。
默认存在,另一个,你必须在你的res文件夹中创建并命名为values-v21。
在styles.xml文件夹的styles.xml中,使用Material theme以外的主题 在您创建的values-v21文件夹的styles.xml中,使用Material theme。
Android手机会自动拾取它支持的styles.xml。如果手机支持Material Design(棒棒糖设备),您的应用将使用素材主题(值-21文件夹)。
如果它没有(在运行较旧的Android版本的手机中),将使用默认值文件夹。
答案 1 :(得分:33)
您需要使用android:theme="@style/Theme.AppCompat.Light"
主题来获取材料设计。
确保你的分数是8,你的目标是21.你还在使用构建工具/ sdk 21。
答案 2 :(得分:25)
Pedro Oliveira is right关于Theme.AppCompat
,但该答案中缺少一些重要信息。
来自Android团队的Chris Banes撰写的一篇名为 appcompat v21: material design for pre-Lollipop devices! 的博文可能最能解答如何在21之前获得API级别的Material Theme的问题。
总结一下,您需要appcompat-v7
dependency:
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。
但你真的应该阅读那篇博文的整个设置部分! (有关工具栏与操作栏以及some of the comments的信息也是您不应该错过的。)
答案 3 :(得分:1)
在NameActivity.java文件中导入以下内容:
import android.support.v7.widget.Toolbar;
评论上一个:
//import android.widget.Toolbar;
有了这个问题就解决了。