我一直想知道Material Design在Android应用程序和设备上的使用限制。
我已经为Android开发了但主题用法在这一刻似乎真的很混乱(appcompat和东西,我从来没有真正得到它)
但显然最后一个谷歌i / o带来了一些工具来帮助在Android应用程序中使用Material Design。
所以,我的问题是,如何正确使用Material Design元素而不将你的应用限制在很多设备上?
(我希望我足够清楚)
答案 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 flavours,v*
表示运行所述lib所需的最低Android版本。例如。通用v7支持库将为您提供 [子集] 设备上的材料组件和样式的支持,一直到android 2.1