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(); 
        } 
    });
Другие вопросы по тегам