为此,当配置更改时,我调用以下代码以编程方式更新小部件宽度:
for (int ID : appWidgetIDs){ Bundle newOptions = appWidgetManager.getAppWidgetOptions(ID); int minWIDth = newOptions.getInt(AppWidgetManager.OPTION_APPWidget_MIN_WIDTH,0); newOptions.putInt(AppWidgetManager.OPTION_APPWidget_MIN_WIDTH,minWIDth - 100); appWidgetManager.updateAppWidgetOptions(ID,newOptions);}
在此之后,我使用新值调用onAppWidgetOptionsChanged(),但小部件不会调整大小.
但是我也在调用onUpdate().
minSdkVersion是16.
我搜索了很多,但找不到与此问题相关的内容,谢谢你提前花了宝贵的时间.
谢谢
解决方法 好的,这是一个我觉得可行的解决方法:创建2个不同的布局(WidgetHorizon,WidgetVertical).
配置更改的时间(我假设您正确地捕获它)
您发送更新意图如下:
private voID sendUpdatebroadcastToWidget() { Intent intent = new Intent(this,WidgetProvIDer.class); intent.setAction(AppWidgetManager.ACTION_APPWidget_UPDATE); // Use an array and EXTRA_APPWidget_IDS instead of AppWidgetManager.EXTRA_APPWidget_ID,// since it seems the onUpdate() is only fired on that: int[] IDs = {R.xml.quick_actions_Widget}; intent.putExtra(AppWidgetManager.EXTRA_APPWidget_IDS,IDs); sendbroadcast(intent); }
在更新方法中:
检查配置并相应调用:
RemoteVIEws vIEws = new RemoteVIEws(getPackagename(),R.Layout.WidgetHorizon)RemoteVIEws vIEws = new RemoteVIEws(getPackagename(),R.Layout.WidgetVertical)appWidgetManager.updateAppWidget(appWidgetID,vIEws);
这样,将根据当前状态选择布局.
总结以上是内存溢出为你收集整理的android – 在设备轮换时以编程方式更新小部件宽度 – 高度全部内容,希望文章能够帮你解决android – 在设备轮换时以编程方式更新小部件宽度 – 高度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)