widget添加后出现不可点击

在Launcher3上添加微博Widget时遇到点击无反应的问题,尤其在屏幕旋转后。作者推测问题可能出在系统或微博应用本身,但考虑到无法让微博进行适配,决定从自身系统找原因。发现当Widget改变大小后会变得可点击,因此尝试在bindWidget时模拟改变大小的操作,以解决不可点击问题。作者认为这种方法有些投机取巧,期待专业人士的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Launcher3添加widget(目前只发现微博)会出现点击无反应(旋转屏幕后很大概率发生),不知道是微博的原因还是系统的原因。(微博的原因的话,我们不是什么大公司也不可能让它来适配我们)所以只能是我们的原因了。
我在操作的时候发现当widget改变大小时他会复活(可点击了)
所以我想能不能在bindWidget时候执行改变大小的操作,但又不变大小。
我做的如下改变

diff --git a/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java b/packages/apps/Launcher3/src/com/android/launc
index 1aefe1a..e78be41 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
@@ -3959,8 +3959,14 @@ public class Launcher extends Activity
                 Log.d(TAG, "bindAppWidget: id=" + item.appWidgetId + " belongs to component "
                         + appWidgetInfo.provider);
             }
-
+           AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
+            Bundle oldOptions = appWidgetManager.getAppWidgetOptions(appWidgetId);
             item.hostView = mAppWidgetHost.createView(this, appWidgetId, appWidgetInfo);
+           if (oldOptions != null) {
+               item.hostView.updateAppWidgetOptions(oldOptions);
+           } else {
+               Log.d(TAG,"APPWidget Options is null appWidgetId="+appWidgetId);
+           }
             item.minSpanX = appWidgetInfo.minSpanX;
             item.minSpanY = appWidgetInfo.minSpanY;

这样可以实现功能但有点投机取巧,如有大神知道什么原因,欢迎指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值