视图的 getWindowToken() 在 windowManager.addView() 之后为 null
View's getWindowToken() is null after windowManager.addView()
我已经使用 WindowManager
添加了视图,如下所示:
windowManager.addView(view, view.getViewParams());
在这一行之前和之后,我检查了 view.getWindowToken()
,它总是 null
。
你能解释一下为什么 view.getWindowToken()
是 null
以及什么时候它不是 null
吗?
当您执行 windowManager.addView(...)
时,视图 不会 立即附加到 window。相反,您正在 post 执行一个将在一段时间后发生的操作。
为了等到上面提到的 "some time" 通过,您可以 post 对视图执行操作:
view.post(new Runnable() {
public void run() {
// now view is attached to window
view.getWindowToken();
}
});
我已经使用 WindowManager
添加了视图,如下所示:
windowManager.addView(view, view.getViewParams());
在这一行之前和之后,我检查了 view.getWindowToken()
,它总是 null
。
你能解释一下为什么 view.getWindowToken()
是 null
以及什么时候它不是 null
吗?
当您执行 windowManager.addView(...)
时,视图 不会 立即附加到 window。相反,您正在 post 执行一个将在一段时间后发生的操作。
为了等到上面提到的 "some time" 通过,您可以 post 对视图执行操作:
view.post(new Runnable() {
public void run() {
// now view is attached to window
view.getWindowToken();
}
});