17

我想在每次调整大小时更新我的​​小部件。我发现这是在:

onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)

但我不知道如何更新其中的小部件。我试图通过调用我放入的所有内容来重绘小部件onUpdate(),但它不起作用。如何使用捆绑包?

4

1 回答 1

33

我想在每次调整大小时更新我的​​小部件。

凉爽的!

我发现这是在onAppWidgetOptionsChanged()

更准确地说,如果您<intent-filter>在 Android 4.1+ 设备上拥有正确的操作,您将通过onAppWidgetOptionsChanged().

但我不知道如何更新其中的小部件。

您更新它的方式与更新它的方式相同onUpdate()。用适当updateAppWidget()的.AppWidgetManagerRemoteViews

我试图通过调用我放在 onUpdate() 中的所有内容来重绘小部件,但它不起作用。

“它不起作用”并不是对您的症状特别有效的描述。

如何使用捆绑包?

对于Bundle命名的newOptions,您可以通过以下方式找到您的新尺寸范围:

newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT)

例如,这个示例项目包含一个AppWidgetProvider简单地将这些值倒入一个字符串并使用它来更新一个TextView. 结果如下所示:

调整小部件大小,在调整大小操作期间

于 2012-12-28T00:05:37.717 回答