Вызов функции через несколько секунд после прорисовки интерфейса java android studio

Есть один Activity и один xml в котором LinearLayout, в котором один TextView

Как можно вызвать функцию
public void createBtn () {Создает кнопку}
через несколько секунд после того как интерфейс прорисуетса и пользователь сможет прочитать TextView?


Ответы (1 шт):

Автор решения: Sergei Buvaka

OnGlobalLayoutListener() то самое место где вы можете вызвать свою функцию. Это гарантирует, что ваша View полностью отрисована.

Вот пример:

textView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        // здесь вы можете сделать нужную задержку(например с помощью Handler().postDelayed()) и выполнить вашу фукнцию
        // здесь стоит отписать листенер, чтоб не вызывать этот метод всякий раз когда View будет перерисовываться 
        textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    }
});
→ Ссылка