android – 在设备轮换时以编程方式更新小部件宽度 – 高度

android – 在设备轮换时以编程方式更新小部件宽度 – 高度,第1张

概述我正在处理widget,当设备从纵向旋转到横向和横向到protrait时,我需要以编程方式控制窗口小部件的宽度和高度. 为此,当配置更改时,我调用以下代码以编程方式更新小部件宽度: for (int id : appWidgetIds){ Bundle newOptions = appWidgetManager.getAppWidgetOptions(id); int minWid 我正在处理Widget,当设备从纵向旋转到横向和横向到protrait时,我需要以编程方式控制窗口小部件的宽度和高度.
为此,当配置更改时,我调用以下代码以编程方式更新小部件宽度:

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个不同的布局(WidgetHorizo​​n,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 – 在设备轮换时以编程方式更新小部件宽度 – 高度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存