【问题标题】:How to have different widgets for different versions of Android?如何为不同版本的 Android 设置不同的小部件?
【发布时间】:2012-07-10 05:52:14
【问题描述】:

我有一个应用程序,我想添加一个小部件。

我一直在研究文档,看起来只有 Android 3.0+ 支持小部件中基于手势的视图。例如,我可以在 4.03 的 gmail 小部件上滚动我的电子邮件作为 listView,并且我还看到了一个 GridView 小部件(在 4.03 上)。

所以,这些类型的小部件不能在 2.2 和 2.3 中使用

有什么方法可以让我的应用程序为 4.0 提供一个可手势小部件,如果用户有 2.3,它会加载不同的小部件?

我编写两个小部件都没有问题,它们都可以工作——我只希望 2.2 上的用户使用我的 2.2 小部件,而 3.0+ 上的用户使用我的 3.0+ 小部件。

这可以通过一个应用程序实现吗?

谢谢!

【问题讨论】:

  • 您可以在构建时检查 android 版本,并确定设备上正在运行哪个版本,并相应地确定您的应用应该使用哪个小部件。
  • 是的,我暗暗希望这不是唯一的方法,但这会奏效。

标签: android widget gesture


【解决方案1】:

android 具有用于打开版本的资源和代码的功能。不,没有什么比向小部件的 XML 添加版本号更高级的了。

对于布局和其他资源,您可以将资源文件夹命名为,

res/values-v11
res/layout-v11

等等。 android 会在运行时拉取最匹配的资源。在代码中可以查看SDK版本,

if (Build.VERSION < Build.VERSION_CODES.HONEYCOMB) {
  // handle android 2 here
}

【讨论】:

  • 如果android会在运行时拉取最匹配的资源,为什么我必须检查代码?确保演示者逻辑具有正确的视图?
  • 完全正确。如果小部件明显不同,则布局可能具有不同的元素,并且处理程序逻辑可能不同。不过,这取决于您的代码。您也许可以只使用两种不同的布局。
  • 是的,我正在考虑尝试让 id 值在布局中匹配,我可以避免这种情况。无论如何,谢谢!
猜你喜欢
  • 2023-02-03
  • 2021-07-30
  • 2015-08-22
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多