我通过使用这样的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();
}
});