-
-
Notifications
You must be signed in to change notification settings - Fork 758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams #52
Comments
相同的错误吧 |
@XZWQuickness 请问是什么版本,以及复现步骤 |
小米2a 版本5.1.1 多次显示showPopupWindow 销毁dismiss 就会出现 |
好的,我尽快解决 |
@razerdp 我这边是,dismiss的时候,对activity里的recycleview的adapter做刷新notifyDataSetChanged,崩溃。如果让notifyDataSetChanged延迟几秒就没事。感觉应该是pop未完全销毁前,操作activity内布局刷新导致 |
其实是跟一个滑动有关大概,因为popup内部有监听scroll事件(用于将popup与anchorView对齐的) 而因为popup给add到windowmanager时用的是WindowManager.LayoutParams,而我这边因为hack掉windowmanager同时在addView时,给内部的decorView再加一层,导致了一个问题,就是两边的layoutParams可能不一致。 详情定位到: popupwindow-> 外部scroll时回调到scrolllistener,其内部有获取layoutParams方法 final WindowManager.LayoutParams p = getDecorViewLayoutParams(); 这里因为decorView被我add到了hackpopupdecorView,因此被我转为了viewGroup的LayoutParams,这里报错可能是因为向下转型的问题,目前解决方案我来想想哈。。。 |
@razerdp 1.8.2没问题,1.9.2崩溃,中间版本未测试。 |
嗯呐,1.9.1开始用windowmanager代理这个方法,当时自己测试也没遇到这个问题,现在遇到的话我在下个版本解决哈~ 顺便问下- -崩溃频率高不高 |
我也遇到这个问题了, 挺容易触发的. 信息BasePopup:1.9.2; 重新步骤1.showPopupWindow(view); 反复几次就crash了. |
我也遇到了哈 还有个问题顺便反馈下 - - 新版本 1.9.2 input类型的popupwindow 不会自动随输入法 而弹到上方 如果屏幕太小 输入法会遮住popupwindow |
@razerdp 我那样的使用方式操作流程,崩溃是必现的。他们的问题不清楚是否必现,但概率应该都很高 |
那个输入法的问题是跟全屏有关的,因为popupHelper默认全屏(N以上可以把popup覆盖到状态栏)BasePopupHelper#50、HackWindowmanager#180 所以布局无法顶上去,又因为这个跟activity全屏一样,当设置为全屏flag 目前来说,可以禁用全屏来折中: popup.setPopupWindowFullScreen(false); |
@XZWQuickness 感谢你们的反馈,新版本已经修复强转问题了,请更新到1.9.3 (ps,我是在模拟器测试的,没有测试到4.1~4.2) |
已解决, 谢谢! 验证步骤1.在外侧滚动RecyclerView |
3Q,如果还有什么问题欢迎提交issue哦 |
我也遇到了哈 ,调试了一下午,模拟器没问题 ,小米手机 必现。唉。。来这看看 结果是库引起的。 |
@yang0000meng 你好,可以开个新的issue具体描述下吗。。。。。还有重现方案- recyclerview在demo中DismissControlPopupFrag也有哦。 |
吓得我赶紧升级1.9.3 |
该问题是怎么引起的?
at android.widget.PopupWindow$1.onScrollChanged(PopupWindow.java:149)
at android.view.ViewTreeObserver.dispatchOnScrollChanged(ViewTreeObserver.java:1016)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2464)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2396)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2026)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1104)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5962)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:794)
at android.view.Choreographer.doCallbacks(Choreographer.java:607)
at android.view.Choreographer.doFrame(Choreographer.java:577)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:780)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5296)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)
重现步骤
报错信息/系统版本
建议或优化点
The text was updated successfully, but these errors were encountered: