Android 4.0 (ICS) 有很多 new UI guidelines这是伟大的。问题是,我不确定如何为 Android 4.0 构建应用程序并确保该应用程序在运行 Android 2.2 和 2.3 的设备上看起来相同/相似。
有Android compatibility library , 和 backwards compatible Action Bar ,但我一直在寻找一种更具体的解决方案,将后 ICS 应用程序移植到前 ICS 手机。
我在正确的轨道上吗?有人有什么想法吗?
最佳答案
这里有一些建议。
首先,关注新的Android Design guidelines .我相信这是一个好主意,不仅因为显而易见的设计原因,而且因为它会使向后兼容更容易。例如,Support Package有助于将推荐的设计元素引入旧平台,并且此软件包的新版本可能会使其更符合最新的设计指南。
第二,使用fragments .即使你认为现在对 Fragment 的需求不大,但它们是 Android 设计的 future ,大屏 Android 的数量可能会快速增长。尽管它们增加了一些额外的复杂性,但我认为它们通过将 View 与 Activity 分开来鼓励良好的设计。
通过 Support Package 启用 fragment 的使用(也称为兼容性库)。这相当简单,我没有遇到任何问题。只需确保您的导入看起来像这样:
import android.**support.v4**.app.Fragment;
这样您就可以从支持包中获取它们,而不是直接调用 native ICS API。
第三,使用文档中描述的主题启用 ICS/HC 操作栏。请注意,这不会为您的应用程序在 Honeycomb 之前的平台上提供操作栏。为此,您要么需要使用 ActionBarSherlock 之类的东西或 ActionBarCompat样本。两者都是很好的解决方案,但它们增加了应用程序的复杂性。当前版本的支持包中没有操作栏,这显然是由于技术问题,但我怀疑他们正在尝试解决这些问题。
因此,如果您想保持简单,请考虑让您的应用在 ICS 和 HC 上有一个操作栏,而在早期平台上没有操作栏是合理的。实际上,Android Dev blog过去几天有一篇文章重点介绍了在这种情况下管理菜单和操作项。
另外,请考虑稍后将 pre-Honeycomb 操作栏添加到您的应用程序(例如,使用 ActionBarCompat 示例中的代码)不会那么糟糕 - 在我看来,这要容易得多,然后再为 fragment 重新编写代码。
最后,请注意,您需要使用最新的 SDK,以便您可以引用 holo 主题(用于 ICS 操作栏)和 showAsAction="ifRoom"
元素等元素,所以您的 list 将包括以下内容:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
关于android - 如何使 Android 4.0 应用程序向后兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011132/