Билиотека для андроид

133
31 марта 2021, 14:40

Только начал изучать андроид, хочу написать библиотеку для получения всех view на активности. Не могу нащупать точку входа. Какой объект нужно использовать, кроме view, разумеется? Как просканировать активность и получить id всех view?

Answer 1

Можно использовать findViewById(android.R.id.content) чтобы найти "root" View для Activity, дальше обойти всю иерархию, начиная с "root"-а, использую, к примеру, DFS:

void traverse(View view) {
    // TODO: do what you need with the View
    // check if a ViewGroup, if so - traverse children
    if (view instanceof ViewGroup) {
        final ViewGroup viewGroup = (ViewGroup) view;
        final int childCount = viewGroup.getChildCount();
        for (int index = 0; index < childCount; index++) {
            final View child = viewGroup.childAt(index);
            traverse(child);
        }
    }
}
READ ALSO
EventEmitter и проверка заполнения объекта

EventEmitter и проверка заполнения объекта

Есть события (events) на которые я подписываюсь (данные события делают запрос на сторонний сервис и получают информацию)После получения информации,...

94
Асинхроность при постановке команд в очередь

Асинхроность при постановке команд в очередь

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

135
Упростить код JavaScript

Упростить код JavaScript

Я только начинаю изучать JS, возникла проблема, есть рабочий код, но сильно громоздкий и большой, помогите его упростить или уменьшить

110
Можно ли создать в canvas blur эффект на фото при mousemove?

Можно ли создать в canvas blur эффект на фото при mousemove?

Можно ли создать на canvas библиотеке Konvajs (или на каком-то другом) blur эффект на фото при mousemove?

109