Denis
и подавать инфу в военкомат
Artem
ему уже было 29 лет и он уже отслужил год или два (не помню когда он служил)
Denis
а военкомат может проверочки делать
Denis
и дрюкать, если что
Vladislav.
Denis
поэтому на собесах сейчас часто спрашивают: "А что у тебя с армией?"
Hovhannes
грустно, однако
грустно это то, что я бля привык
Artem
грустно это то, что я бля привык
а так везде почти попадаешь?
Hovhannes
погоди, а у тебя РВП или ВНЖ нет?
еще один из древнего времени. нет
Hovhannes
а, ну тогда ССЗБ
прикинь. я отпахал в сбере 20 месяцев не имея ни рвп ничего подобного
Александр
Вялый и бессмысленный вопрос длиннопостом. У 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. А первая чатсь определения что значит?
Hovhannes
Вялый и бессмысленный вопрос длиннопостом. У 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. А первая чатсь определения что значит?
никто это не будет читать
Александр
никто это не будет читать
Буду форвадить иногда, пока не разберусь/ответят/меня не забанят
Александр
никто это не будет читать
Ещё можно на SO залить кста, на таком вопросе можно чуток подфармить плюсов.
Hovhannes
прочитал. кароче читай исходники и джавадоки пока не вьедешь
Hovhannes
Топ совет
а что еще сказать? подожди, ебана, ща я кароче разберусь сам и тебе растолкую?
Aleksandr
Александр
а что еще сказать? подожди, ебана, ща я кароче разберусь сам и тебе растолкую?
Ты пишешь так, словно тебя заставляют отвечать на этот вопрос.
Hovhannes
На хуй вообще что то писать если не можешь помочь
чтоб чувак не чувствовал себя одинокой брошеной собакой в чате
Александр
*вуф вуф* Ну кста, лично я вбрасывая любой вопрос заранее настроен на то, что ответ я не получу.
Александр
Самая здоровая установка имхо.
Mike
Вялый и бессмысленный вопрос длиннопостом. У 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. А первая чатсь определения что значит?
Всё, что внутри AttachInfo — одна шт на окно.
Aleksandr
чтоб чувак не чувствовал себя одинокой брошеной собакой в чате
Уж лучше подождет немного, чем будет читать в духе я крутой а ты нет
Hovhannes
ОБОЖАЮ ЧАТ АНДРОИД
Hovhannes
обязательно каждый напишет в меру своей испорченности тонну говна
Aleksandr
Там не было «я крутой, а ты — нет»
Конкретно не было но посыл такой
Hovhannes
а ты реально дал норм совет. - хочешь понять как это говно работает - читай исходники усиленно
Mike
Конкретно не было но посыл такой
может, ты его не понял?
Vladimir
coordinatorlayout, в нем можно как то сделать программно скролл, как если бы я пальцем провел?
Алексей Сергеевич
Тонна говна
Александр
Ну, Оганесс неоднозначно ответил. Я бы мог и так и эдак понять, в зависимости от заёбанности. Сейчас более - менее норм состояние, и я понимаю что "злого умысла" в ответе нет.
Aleksandr
может, ты его не понял?
Да все я понял, я как в этот чат не зайду только и читаю "я оганес я знаю что есть дока а ты нет". Заебал, реально
Mike
Да все я понял, я как в этот чат не зайду только и читаю "я оганес я знаю что есть дока а ты нет". Заебал, реально
Почему каждому нужно пройти и подсказать, что другой подсказывает неправильно? Подскажи сам правильнее, если знаешь
Hovhannes
просто оставлю это здесь https://habr.com/ru/post/484436/
Александр
Всё, что внутри AttachInfo — одна шт на окно.
Ценно, спасибо. Не обратил внимание на то, что внутри AttachInfo есть ещё куча переменных которые как - то с окном связаны(какие - то сессии, Display, ещё что - то). Теперь ещё про Window гуглить, нет этому конца и края, даже если ты ноулайфер((
Denis
Вялый и бессмысленный вопрос длиннопостом. У 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, скорее всего, подразумевается добавление/удаление вьюх в дереве
Александр
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
Я думал над этим, и даже тестил, но результаты неоднозначные малясь.
Denis
не обязательно быть ноулайфером)
Aleksandr
Почему каждому нужно пройти и подсказать, что другой подсказывает неправильно? Подскажи сам правильнее, если знаешь
Люди и без этого знают что есть доки и со. Делать подобные вбросы, мягко говоря, некультурно. И уж лучше промолчать чем выставлять свое невежество
Denis
просто обратная свзязь, намек на то, что здесь он вряд ли получит ответ
Александр
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
You was right, протестил ещё раз, addOnGlobalLayoutListener чётенько тригерится на добавление или удаление вьюх из дерева, видимо global layout state это оно и есть.
Александр
Под global layout state, скорее всего, подразумевается добавление/удаление вьюх в дереве
Что характерно, если удалить из дерева ViewGroup, у которой есть дети, то слушатель тригернётся только один раз, для самой ViewGroup. Дети - это вообще нафиг короче :D Держу в курсе прост.
Dima
Пробовал в styles файле менять цвет?
Пробовал все. Пришлось меня бейс тему апки. Так что поокуратнее с материал стилями)
Trooper
Пробовал все. Пришлось меня бейс тему апки. Так что поокуратнее с материал стилями)
чото радикально слишком, ну да не важно, всё равно спасибо
Trooper
у меня дилема следующая, есть TabLayout активити состоящее из 2х кнопок, как сделать, чтобы каждая кнопка была отдельным фрагментом со своими кнопками.
Trooper
Trooper
И в чём заключается вопрос, что именно не получается сделать?
там в коде просто написано (сейчас скину скрин кода
Trooper
Сформулируй вопрос для начала.
Как добавить кнопки на фрагмент?
Denis
Что характерно, если удалить из дерева ViewGroup, у которой есть дети, то слушатель тригернётся только один раз, для самой ViewGroup. Дети - это вообще нафиг короче :D Держу в курсе прост.
Итак, я потратил 10 минут своего времени и нашел то, что надо. Заходим сюда https://github.com/AndroidSDKSources/android-sdk-sources-for-api-level-29/blob/master/android/view/ViewRootImpl.java и ищем вызов метода dispatchOnGlobalLayout(). Вызов этого метода зависит от переменной mRecomputeGlobalAttributes в attachInfo. Поищем, где она ставится в true. Это метод void needGlobalAttributesUpdate(boolean force) у класса View. А дальше все просто. Этот метод, например, дергается при вызове метода dispatchAttachedToWindow.
Denis
у ViewGroup он вызывается при добавлении и удалении элементов
Azek
Люди и без этого знают что есть доки и со. Делать подобные вбросы, мягко говоря, некультурно. И уж лучше промолчать чем выставлять свое невежество
Оставьте Оганеса в покое, человек два раза из трех мне отвечал, когда никто другой не отвечал. Плюс уморительные периодически комменты выдает, часто захожу чисто ради этого, настроение поднять, посмеяться. А ответ вполне хороший был. Надо поработать над восприятием окружающего мира
Artur
+
Azek
Надеюсь это был сарказм
Ни разу, вполне серьезно
Mike
Надеюсь это был сарказм
предупреждение, реально надоел уже нытьё разводить
Ilya
Отправить почитать доки или в гугл это и правда очень токсичный ответ.
Александр
Итак, я потратил 10 минут своего времени и нашел то, что надо. Заходим сюда https://github.com/AndroidSDKSources/android-sdk-sources-for-api-level-29/blob/master/android/view/ViewRootImpl.java и ищем вызов метода dispatchOnGlobalLayout(). Вызов этого метода зависит от переменной mRecomputeGlobalAttributes в attachInfo. Поищем, где она ставится в true. Это метод void needGlobalAttributesUpdate(boolean force) у класса View. А дальше все просто. Этот метод, например, дергается при вызове метода dispatchAttachedToWindow.
Oh shi, это ж не был призыв к действию, я просто фактом поделился :D Окей, раз уж ты сходил прямо в бездну, я тоже гляну шо там. Мне в целом всё понятно(кроме того как ты всё это раскопал), но при некоторых допущениях: 1) Не смотря на то что Квантум сказал о том что AttachInfo "одно на окно", я пока не понял как это оно так работает. Вью действительно меняет mRecomputeGlobalAttributes каким - то хитрым if - ом в "своём экземпляре" mAttachInfo, и если эта та же AttachInfo, что и у ViewRootImpl, то окей. Под "та же" не подразумевается тот же инстанс, мб есть какая - то другая связь, хз. 2) Это скорее дополнение: mRecomputeGlobalAttributes может засеттится в тру не только при аттаче вью, но и в адовом вьюшном методе setFlags(). Чтобы понять как он работает, надо кусок души отдать дьяволу. Хотя, если исходить из доков по globalListener, то очевидно, что слушатель тригернётся когда в setFlags прилетит visibility флаг(назовём это так), который у вьюхи visibility поменяет. Спасибо за экскурс, это было интересно))
Aleksandr
Ребята всем привет! ✌️ Меня зовут Сергей, работаю на западном фрилансе, в частности на Upwork и не только, могу назвать себя экспертом в работе с американскими и европейскими заказчиками 👨‍💻 Во вторник буду проводить вебинар на тему удаленной работы и фриланса на международном рынке! Немного обо мне: успел поработать с Dell, Under Armour, Rockefeller Foundation и многими другими крупными междунароными компаниями. Бесплатно поделюсь тонкостями работы на западе и своим опытом: • Фундаментальные отличия западного и восточного фриланса, почему нужно сменить свой фокус • Какие ошибки допускают 95% фрилансеров и как войти в 5% лучших • Почему именно Upwork лучшее место работы для любого фрилансера или удаленного специалиста • Главные ошибки русскоязычных фрилансеров на международном рынке. Фишка в подходе • Почему любой специалист на западе может брать за свои услуги от $30 в час Буду рад всех видеть Ссылка на сам вебинар 👉 https://freelance.live/upwebinar
Как это оказалось в чате для android ?
Mike
Как это оказалось в чате для android ?
андроиды могут фрилансить на апворк, не?