2012-07-09 47 views
2

我有一个应用程序,我想添加一个小部件。如何为不同版本的Android使用不同的小部件?

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

因此,这些类型的部件不能在2.2使用和2.3

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

我没有问题写两个小工具,这两个工作 - 我只是想2.2上的用户使用我的2.2小工具和用户在3.0 +以上使用我的3.0 +小工具。

这可能来自一个应用程序?

谢谢!

+1

你可以检查在编译的时候了Android版本,并确定哪个版本的设备上运行,因此该窗口小部件都应您的应用程序使用。 – Nerd 2012-07-09 19:18:09

+0

是的,我暗中希望这不是唯一的方式,但那会工作。 – edthethird 2012-07-09 19:47:48

回答

1

android有设备资源和代码来打开版本。不,没有什么高层次的东西给你的小部件的XML添加版本号。

的布局和其他资源,您可以命名为,

res/values-v11 
res/layout-v11 

等Android将拉动最佳匹配的资源在运行时的资源文件夹。在代码中,你可以检查SDK版本,

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

如果android会在运行时拉出最佳匹配资源,为什么我必须检查代码?确保演示者逻辑具有正确的视图? – edthethird 2012-07-09 19:47:28

+0

正好。如果小部件显着不同,则布局可能具有不同的元素,并且处理程序逻辑可能不同。这取决于你的代码。你可能只能拥有两种不同的布局。 – 2012-07-09 20:35:35

+0

是啊,我正在考虑尝试让'id'值匹配整个布局,我可以避免这种情况。不管怎么说,多谢拉! – edthethird 2012-07-09 20:37:25

相关问题