0

我正在开发一个以listview开头的应用程序。 我遇到了应用程序主题的设置问题。 材料设计可应用于Android 5.0及以上版本。所以,我创建了一个价值-21文件夹并创建styles.xml如下:在5.0版本Android版应用主题

<resources> 
    <!-- Inherit from the light Material Theme --> 
    <style name="MyCustomTheme" parent="android:Theme.Material.Light"> 
    <item name="android:colorPrimary">@color/My_LightBlue</item> 
    </style> 
</resources> 

在Android中这个主题并不适用,因为它无法读取值-21文件夹中。 我还必须在值标准文件夹中创建styles.xml? 必须创建一个新主题来更改应用栏的颜色(这是我的目标)。

我有点迷茫...... 谢谢

+0

可以使用设计支持库使用上较旧的Android版本的材料设计 - https://developer.android.com/topic/libraries/support-library/features.html#design – Okas

回答

1

https://developer.android.com/training/material/compatibility.html

你可以配置你的应用程序上使用设备用材料的主题, 支持,并恢复到一个较旧的主题在早期运行 Android版本的设备:

  1. 在定义从一个旧的主题继承(如全息)主题res/values/styles.xml。
  2. 定义与res/values-v21/styles.xml中的材质 主题相同的名称的主题。
  3. 在清单文件中将此主题设置为应用程序的主题。

如果你根据材料设计指南设计布局不使用任何的是Android 5.0(API级别21)介绍新的XML属性,它们会在Android的早期版本。否则,您可以提供其他布局。您还可以提供其他布局,以定制您的应用在早期版本的Android上的外观。

res/layout-v21/中为Android 5.0(API级别21)创建布局文件,并在res/layout/之内为较早版本的Android创建替代布局文件。例如,res/layout/my_activity.xml是res/layout-v21/my_activity.xml的替代布局。

检查this answerblog

+0

通知我仍然在困惑。@ roberto garavaglia –

+0

谢谢你的回答。那么,如果我不应用Material Theme,在Android 6.0上执行时哪个主题会应用到我的应用程序中? – robyg72

+0

请检查[本](http://stackoverflow.com/questions/9832114/how-to-use-device-default-theme-for-app)和[这个答案](http://stackoverflow.com/questions/21762203/change-the-project-theme-in-android-studio)。你会了解主题概念。 –