Intereting Posts
Как сделать полноэкранный макет для пользовательского просмотра клавиатуры в андроиде Есть ли способ запустить тест Espresso с несколькими методами тестирования, но только один метод установки? Получение пустого экрана в logcat Перемещение проектов и конфигураций Android Studio с Windows 7 на OS X Как ограничить диапазон предварительного просмотра fps в андроиде для камеры? В Android, что означает размерность% p? Хорошая практика заключается в разработке вспомогательного сетевого класса, который отвечает за все сетевые задачи? Преобразование страницы в индексные скрипты Что именно влияет на URLConnection.setDoOutput ()? OptionsMenu вложенных фрагментов в ViewPager Распознавание изображений с использованием SURF с OpenCV в Android Потоковое аудио и видео с Android на ПК / в Интернете. Как правильно установить плавучую кнопку действия? Если я не сжимаю обычный текстовый файл на Android, будет ли он сжиматься в APK? Не удалось загрузить собственную библиотеку libnative-platform.so для Linux amd64

Прокрутите по всем подзонам вида Android?

Я работаю над игрой для Android. Чтобы помочь реализовать его, моя идея – создать подкласс представления. Затем я вставлял несколько экземпляров этого класса в качестве дочерних элементов основного представления. Каждый экземпляр обрабатывал бы обнаружение при нажатии (через OnTouchListener).

Проблема, с которой я сталкиваюсь сейчас, – это как мне перебирать все эти подзадачи, чтобы я мог читать их статусы и обрабатывать их? (Т.е. когда все они достигают определенного состояния, должно случиться что-то).

Или есть лучший способ иметь несколько объектов на экране, которые реагируют на касание и чей статус я могу проверить?

@jqpubliq Правильно, но если вы действительно хотите пройти через все Представления, вы можете просто использовать методы getChildCount() и getChildAt() из ViewGroup . Остальное будет выполнять простой рекурсивный метод.

Я сделал небольшой пример рекурсивной функции:

 public void recursiveLoopChildren(ViewGroup parent) { for (int i = parent.getChildCount() - 1; i >= 0; i--) { final View child = parent.getChildAt(i); if (child instanceof ViewGroup) { recursiveLoopChildren((ViewGroup) child); // DO SOMETHING WITH VIEWGROUP, AFTER CHILDREN HAS BEEN LOOPED } else { if (child != null) { // DO SOMETHING WITH VIEW } } } } 

Функция начнет циклически перемещаться по всем элементам просмотра внутри группы просмотра (от последнего до первого элемента), если дочерний элемент представляет собой группу просмотра, затем перезапустите функцию с этим дочерним элементом, чтобы получить все вложенные представления внутри этого дочернего элемента.

Использование Views звучит так, как будто это будет жестоко сложно сделать что-нибудь хорошее, если есть движение. Вероятно, вы хотите рисовать на Canvas или использовать OpenGL если вы не делаете что-то действительно статичное. Вот отличная беседа с конференцией I / O последних лет о создании игр для Android. Его вид длинный, и вы можете пропустить около 15 минут. Также доступен источник. Это должно дать вам хорошее представление о способах решения

Почему бы просто не использовать массив или вектор, чтобы отслеживать эти представления? Я думаю, это был бы самый простой и эффективный способ.