材料设计和设备限制

时间:2015-08-22 16:59:00

标签: android material-design

我一直想知道Material Design在Android应用程序和设备上的使用限制。

我已经为Android开发了但主题用法在这一刻似乎真的很混乱(appcompat和东西,我从来没有真正得到它)

但显然最后一个谷歌i / o带来了一些工具来帮助在Android应用程序中使用Material Design。

所以,我的问题是,如何正确使用Material Design元素而不将你的应用限制在很多设备上?

(我希望我足够清楚)

1 个答案:

答案 0 :(得分:0)

使用Design Appcompat库实现一些材质功能,以便在Lollypop之前的设备上工作,在Lollypop +上使用真实的材质样式和组件。

这是通过使用资源限定符(styles | themes.xml, layouts etc.)提供替代资源(-v21)来完成的。

values-v21/themes.xml放置

<style name="MyAppBaseTheme" parent="android:Theme.Material">
    <item name="android:colorPrimary">@color/primary</item>
    ...

values/themes.xml放置

<style name=”MyAppBaseTheme” parent=”Theme.AppCompat”>
    <item name=”colorPrimary”>@color/primary</item>
    ...
<style name=”MyAppTheme” parent=”MyAppBaseTheme”>  
    <!-- here you put the version-independent stuff -->

通过这种方式,您可以巧妙地利用主题覆盖,只需交换与材料相关的部分,并一次性定义其他所有内容。

请注意非Appcompat版本中正确的android:前缀。这是因为在5+中这些属性是sdk的一部分,而在Appcompat中,它们是自定义的,与您自己定义的任何样式相同的类公民。

阅读guide on maintaining compatibility,它将告诉您有关提供替代样式资源以及为5.0之后和之前分割代码库的信息

UPD 关于您在评论中的问题,他们是否也能够展示材料设计?

Here is a breakdown of support library version and flavoursv*表示运行所述lib所需的最低Android版本。例如。通用v7支持库将为您提供 [子集] 设备上的材料组件和样式的支持,一直到android 2.1