1

我已经通过使用WindowManager这样的方式添加了视图:

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

在这条线之前和之后我检查view.getWindowToken()它总是null

你能解释一下为什么view.getWindowToken()null,什么时候变成不是null

4

1 回答 1

1

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

为了等待足够的时间以使上述“一段时间”过去,您可以将操作发布到视图:


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

于 2018-02-01T06:05:15.103 回答