【问题标题】:Using different app widget layouts depending on the API level根据 API 级别使用不同的应用小部件布局
【发布时间】:2013-08-10 22:02:30
【问题描述】:

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

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

【问题讨论】:

    标签: android android-layout android-appwidget android-version


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      最好的方法是在 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 中的布局文件。

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 2017-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 1970-01-01
        相关资源
        最近更新 更多