【问题标题】:How to make Android 4.0 apps backwards compatible?如何使 Android 4.0 应用程序向后兼容?
【发布时间】:2012-08-08 23:04:43
【问题描述】:

Android 4.0 (ICS) 有很多很棒的new UI guidelines。问题是,我不确定如何为 Android 4.0 构建应用程序并确保该应用程序在运行 Android 2.2 和 2.3 的设备上看起来相同/相似。

Android compatibility librarybackwards compatible Action Bar,但我一直在寻找更具体的解决方案,将后 ICS 应用程序移植到前 ICS 手机。

我在正确的轨道上吗?有人有什么想法吗?

【问题讨论】:

  • 链接的文章不是 ICS 特定的。只是在为 Android 编码时遵循 Android 约定的一般性警告。
  • 究竟什么是“更具体的解决方案”?
  • 那么... Google 自己提供给您的向后兼容的库和工具对您来说不够具体吗?您希望它们不起作用还是什么?

标签: android android-layout android-ui android-4.0-ice-cream-sandwich


【解决方案1】:

这里有一些建议。

首先,关注新的Android Design guidelines。我相信这是一个好主意,不仅因为显而易见的设计原因,而且因为它会使向后兼容更容易。例如,Support Package 有助于将推荐的设计元素引入旧平台,而该软件包的新版本可能会使其更符合最新的设计指南。


其次,使用fragments。即使你认为现在对 Fragment 的需求不大,但它们是 Android 设计的未来,大屏 Android 的数量可能会快速增长。尽管它们增加了一些额外的复杂性,但我认为它们通过将视图与活动分开来鼓励良好的设计。

通过Support Package(也称为兼容性库)启用片段的使用。这相当简单,我没有遇到任何问题。只需确保您的导入看起来像这样:

import android.**support.v4**.app.Fragment;

这样您就可以从支持包中获取它们,而不是直接调用本机 ICS API。


第三,使用文档中描述的主题启用 ICS/HC 操作栏。请注意,这不会为您的应用程序在 Honeycomb 之前的平台上提供操作栏。为此,您要么需要使用 ActionBarSherlockActionBarCompat 示例。两者都是很好的解决方案,但它们增加了应用程序的复杂性。当前版本的支持包中没有操作栏,这显然是由于技术问题,但我怀疑他们正在尝试解决这些问题。

因此,如果您想保持简单,请考虑让您的应用在 ICS 和 HC 上有一个操作栏,而在早期平台上没有操作栏是合理的。实际上,Android Dev blog 前几天发了一个帖子,重点介绍在这种情况下管理菜单和操作项。

另外,请考虑稍后将 pre-Honeycomb 操作栏添加到您的应用程序(例如,使用 ActionBarCompat 示例中的代码)不会那么糟糕 - 在我看来,这要容易得多,然后再为片段重新编写代码。

最后,请注意,您需要使用最新的 SDK,以便您可以引用 holo 主题(用于 ICS 操作栏)和 showAsAction="ifRoom" 元素等元素,因此您的清单将包含以下内容:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />

【讨论】:

  • 感谢您的详细帖子。你链接到我在我的问题中已经链接到的 3 篇文章。我仍然遇到 ActionBar 的问题。如何让拆分的 ActionBar 显示在 ICS 之前的设备上?
  • 我不知道这个问题的答案 - 根据我的帖子,我一直在使用 ICS 之前的设备上的片段,而不是操作栏。
  • 最好的解决方案恕我直言是 ActioBarSherlock 。支持从2.x到4.x,包罗万象!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多