有没有一种方法来检查android WindowManager是否已经包含一个视图? [英] Is there a way to check if android WindowManager already contains a view?

查看:1665
本文介绍了有没有一种方法来检查android WindowManager是否已经包含一个视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试执行WindowManager.removeView()时,

When I try to do a 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之前是否已经添加过视图? 我在

I get this fatal error because the view was not in the window manager. Is there no way to check if windowmanager had already added the view before? I do not see any such method in the source

推荐答案

您可以检查视图的窗口标记是否为空:

You can check to see if the view's window token is null:

if(view.getWindowToken() != null){
    WindowManager.removeView(view);
}

您也可以捕获异常:

try{
    WindowManager.removeView(view);
}catch(IllegalArgumentException e){
    Log.e(debug_tag, "view not found");
}

这篇关于有没有一种方法来检查android WindowManager是否已经包含一个视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆