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