lik*_*udo 12 android android-layout
当我尝试做一个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)
Run Code Online (Sandbox Code Playgroud)
我得到这个致命错误,因为视图不在窗口管理器中.有没有办法检查windowmanager之前是否已经添加了视图?我在源代码中没有看到任何这样的方法
Jst*_*wll 32
您可以检查视图的窗口标记是否为空:
if(view.getWindowToken() != null){
WindowManager.removeView(view);
}
Run Code Online (Sandbox Code Playgroud)
你也可以抓住异常:
try{
WindowManager.removeView(view);
}catch(IllegalArgumentException e){
Log.e(debug_tag, "view not found");
}
Run Code Online (Sandbox Code Playgroud)
这也是检查其是否已添加到窗口的更好方法。
if (view.getParent() != null)) {
windowsManager.removeView(view);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10356 次 |
| 最近记录: |