我想在每次调整大小时更新我的小部件。我发现这是在:
完成的 onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)
但我无法找到如何更新其中的小部件。我尝试通过调用我放在onUpdate()
中的所有内容来重绘窗口小部件,但它不起作用。我怎样才能使用这个包呢?
答案 0 :(得分:32)
我想在每次调整大小时更新我的小部件。
酷!
我发现这是在
中完成的onAppWidgetOptionsChanged()
更准确地说,如果您在<intent-filter>
,Android 4.1及更高版本的设备上执行了正确的操作,则可以通过onAppWidgetOptionsChanged()
找到有关调整大小事件的信息。
但我无法找到如何更新其中的小部件。
您更新它的方式与在onUpdate()
中更新它的方式相同。使用适当的updateAppWidget()
在AppWidgetManager
上致电RemoteViews
。
我尝试通过调用放在onUpdate()中的所有内容来重绘窗口小部件,但它无效。
“它不起作用”并不是对症状的特别有效的描述。
如何使用捆绑包?
对于名为Bundle
的{{1}},您可以通过以下方式找到新的尺寸范围:
newOptions
例如,this sample project包含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
。结果如下: