使用Activities
时,您可以通过setContentView()
在onCreate()
中轻松选择要使用的layout
。但是,如何在应用程序小部件上完成此操作呢?据我所知,应用程序小部件的布局是由相应的AppWidgetProviderInfo.xml
决定的,这在运行时是不可配置的,对吗?
那么,如何根据设备的Android版本选择特定的布局呢?
发布于 2013-09-10 23:23:28
AppWidgetProviderInfo提供了默认的初始布局,但您可以在为appwidget创建RemoteViews对象时在运行时指定布局。
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.layout_id);
将其与针对android.os.Build.VERSION.SDK_INT
值的检查相结合,可能会得到您想要的结果。
发布于 2014-02-12 14:46:39
最好的方法是在android中使用资源限定符,就像用字符串替换不同的语言环境或用维度替换不同的屏幕大小一样。您可以通过查看http://developer.android.com/guide/topics/resources/providing-resources.html#table2找到有关此功能的更多信息
您可以使用它在xml/目录中定义一个新的小部件XML规范,或者在layout/目录中定义一个替代布局。
它看起来像这样:
当您运行API11或更高版本时,将使用layout_v11中的布局文件。
https://stackoverflow.com/questions/18166752
复制相似问题