0

使用时,您可以在viaActivities中轻松选择layout要使用的。但是如何在应用小部件上完成此操作?据我所知,应用程序小部件的布局由相应的 确定,在运行时不可配置,是吗?onCreate()setContentView()AppWidgetProviderInfo.xml

那么如何根据设备的 Android 版本选择特定的布局呢?

4

2 回答 2

0

最好的方法是在 android 中使用资源限定符,就像用字符串替换不同的语言环境或不同的屏幕尺寸的尺寸一样。您可以通过查看http://developer.android.com/guide/topics/resources/providing-resources.html#table2找到有关此功能的更多信息

您可以使用它在 xml/ 目录中定义新的小部件 XML 规范,或在 layout/ 目录中定义替代布局。

它看起来像这样:

  • layout/widget_layout.xml (默认或最低 API 版本的布局)
  • layout_v11/widget_layout.xml (用于 API 级别 11 的版本)

当您运行 API 11 或更高版本时,将使用 layout_v11 中的布局文件。

于 2014-02-12T06:46:38.530 回答
0

AppWidgetProviderInfo 提供默认的初始布局,但您可以在运行时为 appwidget 创建 RemoteViews 对象时指定布局。

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
    R.layout.layout_id);

将此与对android.os.Build.VERSION.SDK_INT值的检查相结合,这可能会让您到达您想去的地方。

于 2013-09-10T15:23:28.357 回答