我在主屏幕上有一个小部件,其中包含几个带有默认背景图像的ImageButton。通过配置活动,我可以更改任何一个ImageButton上的图像。问题是当屏幕旋转时,ImageButton上的图像会消失,并且会变回默认图像。
我不知道为什么会发生这种情况,也不知道如何解决它。
我在主屏幕上有一个小部件,其中包含几个带有默认背景图像的ImageButton。通过配置活动,我可以更改任何一个ImageButton上的图像。问题是当屏幕旋转时,ImageButton上的图像会消失,并且会变回默认图像。
我不知道为什么会发生这种情况,也不知道如何解决它。
mbaird的回答是正确的。
但是还有另一种解决方案。这个解决方案是在创建/更新小部件的整个视图时使用updateAppWidget,而在只更改部分视图时使用partiallyUpdateAppWidget。然后视图不会重置。
部分更新示例(在所有小部件上显示一个小同步图标):
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, Widget.class));
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
views.setViewVisibility(R.id.syncImage, View.VISIBLE);
for (int i = 0; i < appWidgetIds.length; i++) {
appWidgetManager.partiallyUpdateAppWidget(appWidgetIds[i], views);
}