GetWindowToken() представления является нулевым после windowManager.addView()
Я добавил вид с помощью WindowManager
как это:
windowManager.addView(view, view.getViewParams());
До и после этой строки я проверяю view.getWindowToken()
и это всегда null
,
Не могли бы вы объяснить, почему view.getWindowToken()
является null
и когда это становится не null
?
1 ответ
Решение
Когда вы выполняете windowManager.addView(...)
вид не сразу привязывается к окну. Скорее вы публикуете действие, которое произойдет через некоторое время.
Для того, чтобы подождать, пока не пройдет указанное выше "некоторое время", вы можете опубликовать действие в представлении:
view.post(new Runnable() {
public void run() {
// now view is attached to window
view.getWindowToken();
}
});