当我尝试执行 WindowManager.removeView() 时,
E/AndroidRuntime( 2445): java.lang.IllegalArgumentException: View=android.widget.LinearLayout{41a03700 V.E..... ......I. 0,0-0,0} not attached to window manager
E/AndroidRuntime( 2445): at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:370)
E/AndroidRuntime( 2445): at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:299)
E/AndroidRuntime( 2445): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:79)
我收到此致命错误是因为该视图不在窗口管理器中。
有没有办法检查windowmanager之前是否已经添加了视图?
我在中没有看到任何这样的方法source https://android.googlesource.com/platform/frameworks/base/+/211370fd943cf26905001b38b8b1791851b26adc/core/java/android/view/WindowManagerImpl.java
您可以检查视图的窗口标记是否为空:
if(view.getWindowToken() != null){
WindowManager.removeView(view);
}
您也可以捕获异常:
try{
WindowManager.removeView(view);
}catch(IllegalArgumentException e){
Log.e(debug_tag, "view not found");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)