Size: a a a

Android Developers

2020 January 27

DE

Denis Egorov in Android Developers
Александр
Вялый и бессмысленный вопрос длиннопостом.

У View в классе AttachInfo есть поле ViewTreeObserver, которое можно получить через getViewTreeObserver(). У каждой вьюхи - свой инстанс поля.

Читаю доку к этому полю:

The view tree observer used to dispatch global events like layout, pre-draw, touch mode change, etc.

И вот этот вот термин view tree, он что обозначает - всё дерево вьюх, начиная ажно с DecorView, или все же что - то другое, что ассоциируется с конкретной вью, у которой мы инстанс берём? Мб ветвь, для которой наша вью является корневой.

Вешать слушателя на всё дерево - эт чёт жоска как - то, и бессмыслено чтоль в контесте того что у каждой вью свой инстанс этого обсервера. Нафига каждый раз новый инстанс создавать, можно ж один юзать для всех и бед не знать.

Есть такое ещё определение для ViewTreeObserver, но оно в отрыве от контекста вьюхи:

A view tree observer is used to register listeners that can be notified of global changes in the view tree.

Тут явно пишут, что наблюдение идёт за всем деревом в целом. Но чёт как - то не.

Вопрос вообще пошёл от метода addOnGlobalLayoutListener, юзать я его юзаю а как он работает чёт 0 понимания.

Вот его определение:

Register a callback to be invoked when the global layout state or the visibility of views within the view tree changes

Я нихрена не понимаю что такое global layout state. Вторую часть допустим понимаю - обсервер будет выполнять экшн каждый раз, когда какая - либо вьюха в дереве поменяла visibility. А первая чатсь определения что значит?
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
источник

А

Александр in Android Developers
Denis Egorov
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
Я думал над этим, и даже тестил, но результаты неоднозначные малясь.
источник

DE

Denis Egorov in Android Developers
Александр
Ценно, спасибо.
Не обратил внимание на то, что внутри AttachInfo есть ещё куча переменных которые как - то с окном связаны(какие - то сессии, Display, ещё что - то).
Теперь ещё про Window гуглить, нет этому конца и края, даже если ты ноулайфер((
в Window ничего сложного нет
источник

DE

Denis Egorov in Android Developers
не обязательно быть ноулайфером)
источник

AS

Aleksandr Sobol in Android Developers
Quantum Harmonizer
Почему каждому нужно пройти и подсказать, что другой подсказывает неправильно? Подскажи сам правильнее, если знаешь
Люди и без этого знают что есть доки и со. Делать подобные вбросы, мягко говоря, некультурно. И уж лучше промолчать чем выставлять свое невежество
источник

А

Александр in Android Developers
Denis Egorov
в Window ничего сложного нет
WIll see, heh)
источник

QH

Quantum Harmonizer in Android Developers
Aleksandr Sobol
Люди и без этого знают что есть доки и со. Делать подобные вбросы, мягко говоря, некультурно. И уж лучше промолчать чем выставлять свое невежество
Задавать столь длинные вопросы тоже некультурно, тем более — на читав исходники)
источник

DE

Denis Egorov in Android Developers
Aleksandr Sobol
Люди и без этого знают что есть доки и со. Делать подобные вбросы, мягко говоря, некультурно. И уж лучше промолчать чем выставлять свое невежество
да он же, вроде, норм ответил. Без смайлика, конечно, но все равно не выглядит грубо
источник

А

Александр in Android Developers
Quantum Harmonizer
Задавать столь длинные вопросы тоже некультурно, тем более — на читав исходники)
Ай(
источник

DE

Denis Egorov in Android Developers
просто обратная свзязь, намек на то, что здесь он вряд ли получит ответ
источник

А

Александр in Android Developers
Denis Egorov
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
You was right, протестил ещё раз, addOnGlobalLayoutListener  чётенько тригерится на добавление или удаление вьюх из дерева, видимо global layout state это оно и есть.
источник

А

Александр in Android Developers
Denis Egorov
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
Что характерно, если удалить из дерева ViewGroup, у которой есть дети, то слушатель тригернётся только один раз, для самой ViewGroup. Дети - это вообще нафиг короче :D
Держу в курсе прост.
источник

T

Trooper in Android Developers
Dima Yakovenko
Народ помогайте. Сижу уже 2 час. Как убрать этот эбаный фон у кнопок. Уже все стили менял..
Пробовал в styles файле менять цвет?
источник

DY

Dima Yakovenko in Android Developers
Trooper
Пробовал в styles файле менять цвет?
Пробовал все. Пришлось меня бейс тему апки. Так что поокуратнее с материал стилями)
источник

T

Trooper in Android Developers
Dima Yakovenko
Пробовал все. Пришлось меня бейс тему апки. Так что поокуратнее с материал стилями)
чото радикально слишком, ну да не важно, всё равно спасибо
источник

T

Trooper in Android Developers
у меня дилема следующая, есть TabLayout активити состоящее из 2х кнопок, как сделать, чтобы каждая кнопка была отдельным фрагментом со своими кнопками.
источник

AA

Ap6ye Ap6ye in Android Developers
Quantum Harmonizer
Задавать столь длинные вопросы тоже некультурно, тем более — на читав исходники)
Ну если вопрос большой, то что поделать. 😊
источник

AA

Ap6ye Ap6ye in Android Developers
Trooper
у меня дилема следующая, есть TabLayout активити состоящее из 2х кнопок, как сделать, чтобы каждая кнопка была отдельным фрагментом со своими кнопками.
Прям как «есть два стула...». 🤣
источник

QH

Quantum Harmonizer in Android Developers
Trooper
у меня дилема следующая, есть TabLayout активити состоящее из 2х кнопок, как сделать, чтобы каждая кнопка была отдельным фрагментом со своими кнопками.
И в чём заключается вопрос, что именно не получается сделать?
источник

T

Trooper in Android Developers
источник