android - 如何使 Android 4.0 应用程序向后兼容?

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

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/

相关文章:

java - 在 Android Activity 中嵌入 Youtube 视频

java - Android DialogFragment 自动调整大小

android - 不可见时更新 Activity 的 UI [另一个 Activity 在前台]

java - Android 日期选择器监听器不能工作超过一次..

android - 如何滚动由Cordova mfilechooser插件触发的内存文件浏览器

android - 我无法在 res 目录中添加新文件夹

使用 setStyle 时 DialogFragment 中的 Android ListView 错误

没有电池图标的Android全屏 Activity

java - Fragment 中的 findViewById() 返回 null

java - 在 Android 中创建自定义 ListView 时出现 UnsupportedOperationException