Intereting Posts
Android: обнаружение, когда ADB активен через USB Как сериализовать объект android.graphics.Path Вызов registerReceiver из DialogFragment Форматирование валюты на Android с использованием децимального разделителя Как установить переменную среды в Android Studio, прежде чем она запустит мою структуру градиента Скопировать / поделиться конфигурациями между платными / бесплатными версиями Android-приложения? Показать сложный тост из BroadcastReceiver Скрытие представлений декларативно на основе размера экрана в Android GPS-время в Android Установите apk из другой программы Android – Удержание активности во время анимации Какова цель как целевого API, так и minSDK Экран «Шерлок» + «Список фрагментов» + «Фрагменты» Как создать изменяемый размер прямоугольника с пользовательскими событиями касания на Android? Android listview отображает все доступные элементы без прокрутки со статическим заголовком

Какой метод называется моментом, когда деятельность полностью изложена и готова для взаимодействия с пользователем?

Мне нужен способ запускать код в тот момент, когда активность полностью загружена, выложена, нарисована и готова к сенсорным элементам управления пользователя. Какой метод / слушатель делает это?

Commonsware прав, не объясняя, что вы пытаетесь сделать и почему, невозможно ответить на ваш вопрос, и я подозреваю, что с деталями вы, вероятно, думаете об этом неправильно.

Тем не менее, у меня есть код, в котором мне нужно было сделать очень фанк-макет после того, как все было измерено.

Я мог бы расширить каждый из классов вида в макете и переопределить onMeasure() но это было бы большой работой. Итак, я закончил это. Не очень, но это работает.

MainMenuLayout – это макет, в котором мне нужно было напугать. onGlobalLayout callback onGlobalLayout вызывается, когда макет завершил рисование. Utils.setTitleText() – это место, где происходит funkiness, и когда я передаю mainMenuLayout к нему, он имеет доступ к положению и размеру всех дочерних представлений.

 mainMenuLayout.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // only want to do this once mainMenuLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); // set the menu title, the empty string check prevents sub-classes // from blanking out the title - which they shouldn't but belt and braces! if (!titleText.equals("")){ Utils.setTitleText(_context,mainMenuLayout,titleText); } } }); 

Я обнаружил, что если я Runnable в очередь сообщений, он будет запущен после того, как будет создан контент для активности. Например, если я хочу ширину и высоту представления, я бы сделал следующее:

 view.post( new Runnable() { @Override public void run() { int width = view.getWidth(); // will be non-zero int height = view.getHeight(); // will be non-zero } } ); 

Я нашел успех с этим в любое время после вызова setContentView() .

Метод onRestoreInstanceState – это тот, который вызван для восстановления состояния пользовательского интерфейса, которое вызывается после onResume. Я думаю, вы можете использовать этот метод onRestoreInstanceState .. и поместите свой код после восстановления состояния пользовательского интерфейса из сохраненногоInstanceState …

Попробуйте onPostResume() вызванный после onResume() в этот момент экземпляр Activity должен быть видимым, и отображаются все основные Представления. Во многих ситуациях это верно, когда onResume() вызывается.

Может быть, это немного помогает:

 @Override public void onAttachedToWindow(){}