View's getWindowToken() 在 windowManager.addView() 之后为空



我通过使用这样的WindowManager添加了视图:

windowManager.addView(view, view.getViewParams());

在这一行之前和之后,我检查view.getWindowToken(),它总是null.

你能解释一下为什么view.getWindowToken() null以及什么时候变得不null吗?

执行windowManager.addView(...)时,视图不会立即附加到窗口。相反,您正在发布一个操作,该操作将在一段时间后发生。

为了等待足够多的时间,以便上面提到的"一段时间">过去,您可以将操作发布到视图中:


    view.post(new Runnable() { 
        public void run() { 
            // now view is attached to window
            view.getWindowToken(); 
        } 
    });

相关内容

  • 没有找到相关文章

最新更新