使用时,您可以在viaActivities
中轻松选择layout
要使用的。但是如何在应用小部件上完成此操作?据我所知,应用程序小部件的布局由相应的 确定,在运行时不可配置,是吗?onCreate()
setContentView()
AppWidgetProviderInfo.xml
那么如何根据设备的 Android 版本选择特定的布局呢?
使用时,您可以在viaActivities
中轻松选择layout
要使用的。但是如何在应用小部件上完成此操作?据我所知,应用程序小部件的布局由相应的 确定,在运行时不可配置,是吗?onCreate()
setContentView()
AppWidgetProviderInfo.xml
那么如何根据设备的 Android 版本选择特定的布局呢?
最好的方法是在 android 中使用资源限定符,就像用字符串替换不同的语言环境或不同的屏幕尺寸的尺寸一样。您可以通过查看http://developer.android.com/guide/topics/resources/providing-resources.html#table2找到有关此功能的更多信息
您可以使用它在 xml/ 目录中定义新的小部件 XML 规范,或在 layout/ 目录中定义替代布局。
它看起来像这样:
当您运行 API 11 或更高版本时,将使用 layout_v11 中的布局文件。
AppWidgetProviderInfo 提供默认的初始布局,但您可以在运行时为 appwidget 创建 RemoteViews 对象时指定布局。
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.layout_id);
将此与对android.os.Build.VERSION.SDK_INT
值的检查相结合,这可能会让您到达您想去的地方。