支持Android材质设计

2024-03-02

我们正在重新设计我们的 Android 应用程序,考虑到即将推出的 Android L 平台及其材质风格,出现了一个问题:支持旧设备的方式是什么?这种新设计在 4.x 设备上可以接受吗?


根据Android Material Design 兼容性文档 http://developer.android.com/preview/material/compatibility.html

我将在这里重新整理这些材料,以防链接被删除(很可能在不久的将来)。

对于材料主题

Material 主题仅在 Android L Developer 中可用 预览。配置您的应用程序以在设备上使用材质主题 在设备上运行 Android L 开发者预览版和旧主题 运行早期版本的 Android:

定义一个继承自旧主题(如 Holo)的主题 res/values/styles.xml。定义一个同名的主题继承 来自 res/values-v21/styles.xml 中的材质主题。设置这个主题 作为清单文件中应用程序的主题。

至于布局

如果您根据材料设计设计的布局 指南不使用 Android L 中的任何新 XML 属性 开发者预览版,它们将适用于以前版本的 Android。 否则,您可以提供替代布局。您还可以提供 用于自定义应用程序早期外观的替代布局 Android 版本。

为 Android L 开发者预览版创建布局文件 res/layout-v21/ 以及早期版本的替代布局文件 Android 的 res/layout/ 里面。替代布局具有相同的文件 姓名。

为了避免重复代码,请在 res/values/ 中定义样式 并修改 res/values-v21/ 中新 API 的样式。

对于 UI 小部件

RecyclerView 和 CardView 小部件包含在 Android L 中 开发者预览版支持库,因此它们可以在更早的版本中使用 具有以下限制的 Android 版本:

CardView 回退到编程影子实现,使用 额外的填充。 CardView 不会裁剪其子视图 与圆角相交。这些限制不适用于 Android L 开发者预览版。

最后是动画

以下新 API 仅在 Android L Developer 中可用 预览:

活动转换、触摸反馈、显示动画、基于路径 动画。为了保持与早期版本的 Android 的兼容性, 在调用这些 API 之前,请在运行时检查系统版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支持Android材质设计 的相关文章

随机推荐

  • 查找物料/仓库的总可用量和可用实物

    我有一个显示字段的方法 它执行以下操作 return InventSum find salesLine ItemId InventDim salesLine InventDimId AvailPhysical 这为我提供了该线路站点 仓库
  • Regex101 与 Oracle 正则表达式

    我的正则表达式 0 digit digit 0 它正在删除十进制数中的前导 以及前导和尾随 0 我已经测试过了regex101 https regex101 com r erFPtk 2 对于输入 000099 8420000和替代 1 2
  • Liferay主题中包含jQuery和其他JS文件

    我使用 Liferay 6 1 并创建了我的主题 sample theme 我想添加jQuery 我怎样才能做到这一点 为什么我有文件夹 sample theme and liferay work两者都有文件夹 css js 模板 我创建了
  • 宏范围内的 Cmake 全局变量

    我正在尝试创建一个全局列表 并且希望将其附加到宏中 这是我的设置 project CMakeLists txt level1 CMakeLists txt level2a CMakeLists txt level2b CMakeLists
  • 如何访问knockout.js模板中项目的索引

    在下面 tbody 的模板中 如何访问正在呈现的项目的索引 table tbody tr class contactRow valign top td a href Delete a td td td tr tbody table
  • 需要捕获 MS Word 中的当前滚动位置(不是光标位置)

    我需要获取Word文档中当前的滚动位置 我认为这是正确的术语 即我的虚拟镜头指向文档的位置 而不是光标所在的位置 以便当我运行宏时我可以返回到最后的那个位置 我编写了一个宏 从当前光标位置向后搜索专利申请零件号 将候选下一个可用零件号确定为
  • Bootstrap 3表单和表单最后一行背景颜色

    在我们的表格中 我们尝试 向表单添加背景颜色并 表单最后一行的背景颜色 通常包含我们的按钮 问题是最后一行的背景颜色未正确对齐 您将看到最后一行的大小超出了表单宽度 请参见 http jsfiddle net 4ThKn 2 http js
  • 如何在android中压缩文件

    我需要以编程方式压缩 txt 文件 我已经在 files 创建了文本文件directory context getFilesDirectory 我想压缩文本文件并将压缩文件添加到 Intent 对象中 请给我一段代码来说明如何在androi
  • 如何解决 iPhone 中的“命令 /bin/sh 失败,退出代码 1”问题

    我在我的应用程序中使用了可可静态库 当我编译我的库时 出现以下错误 Shell Script invocation error can t open input file Users sijuthomas Library Developer
  • 对 CORS 的缓存效果:请求的资源上不存在“Access-Control-Allow-Origin”标头

    这个问题的简短版本是我们看到典型的 CORS 错误 x has been blocked by CORS policy No Access Control Allow Origin header is present on the requ
  • 如何在系统启动时启动 Flutter 应用?

    我正在制作一个 Flutter 应用程序 我想让它在系统启动时自动启动 到目前为止 我已经尝试过自动启动 https pub dev packages autostart and flutter boot 启动 https github c
  • EditText 输入过滤器导致重复字母

    我一直像这样限制对我的编辑文本的输入 InputFilter filter new InputFilter public CharSequence filter CharSequence source int start int end S
  • Hibernate 代理上的 Bean 验证失败?预期行为?

    我在用着 hibernate core 4 0 1 Final hibernate validator 4 2 0 Final 我有一个延迟加载实体 NotNull OneToOne fetch FetchType LAZY optiona
  • 处理 EditText 内可绘制对象上的单击事件

    我在文本右侧添加了一个图像EditText小部件 使用以下 XML
  • 如何创建一个不由轮询驱动的聊天服务器?

    我创建了一个由客户端轮询驱动的简单聊天服务器 客户端每隔几秒发送一次数据请求 并收到任何新消息以及有关其对等方是否仍处于连接状态的信息 由于客户端在移动平台 iPhone 上运行 我一直在寻找摆脱轮询的方法 因为轮询会很快耗尽电池 我读到可
  • 使用 Indy 测量网络流量

    我使用 TIdTCPCmdServer 来处理与客户端应用程序的所有通信 我希望我的服务器记录所有类型的内容 包括网络流量 有没有简单或聪明的方法来查看 TCPCmdServer 实际接收和发送了多少字节 我只能想到这样的代码 ASende
  • 如何让 JLabels 从下一行开始

    JPanel pMeasure new JPanel JLabel economy new JLabel Economy JLabel regularity new JLabel Regularity pMeasure add econom
  • 如何在docker容器崩溃时自动监控并重启?

    我目前正在运行两个虚拟服务器官方鬼魂形象 https registry hub docker com ghost and nginx proxy图片 这是我的构建 docker run d p 86 2368 name home e VIR
  • 碰撞解决:二次探测与单独链接

    好的 我一直在对哈希表和不同的冲突解决问题进行一些实验 我试图找出哪个更有效地进行查找 即使用单独的链接或二次探测来解决冲突的哈希表 我的结果表明 即使对于较小的负载因子 例如 0 4 或 0 2 单独链接也比二次探测更快 是这种情况还是我
  • 支持Android材质设计

    我们正在重新设计我们的 Android 应用程序 考虑到即将推出的 Android L 平台及其材质风格 出现了一个问题 支持旧设备的方式是什么 这种新设计在 4 x 设备上可以接受吗 根据Android Material Design 兼