Ivansuper
Отсутствие тени слева + тень на среднем = тень в итоге
Ivansuper
Mike
на левой картинке слева есть тень
Mike
что не так?
Ivansuper
Она меньше
Ivansuper
Но я не хочу из этого разводить холивар
Ivansuper
Это как развести холивар на тему того, что тень элемента сверху неправильно рассчитывается при наличии элементов под ней, не смотря на то, что elevation distance между этими двумя элементами меньше чем от верхнего до фона окна (сложно разъяснил, но думаю понятна мысль)
Ivansuper
Потому что система вокруг такого поведения построена
Сергій
почему?
Думаешь почему когда используешь всякие мемори клинеры андроид только сильнее лагает? )
Ivansuper
Сравни это со следующим — ты запускаешь виртуалку на ПК, в ней FinalCut, потом ты закрываешь FinalCut, но виртуалка осталась. А теперь что будет быстрее — запустить все заново, или же запустить FinalCut в существующей виртуалке? При этом основная ОС сама схлопнет виртуалку если ей не хватит ресурсов
Ivansuper
Думаешь почему когда используешь всякие мемори клинеры андроид только сильнее лагает? )
Нужно сделать клинер, который будет клинить систему от всяких левых клинеров
Ivansuper
Многие кстати до сих пор пытаются сделать "выход из приложения" и используют Process.kill для данной функции. Так вообще нельзя делать
Dug
Нужно сделать клинер, который будет клинить систему от всяких левых клинеров
мы встроили клинер в клинер, чтобы вы клинили клинеры, которые клинят
oles
Думаешь почему когда используешь всякие мемори клинеры андроид только сильнее лагает? )
ну это же мое приложение, я знаю момент когда сервис уже не нужен и прибиваю его
Konstantin
я чувствую что у меня есть большой пробел в знаниях о том как себя ведут фрагменты. однажды столкнулся с непонятками когда фрагмент вернулся из стека, и с тех пор боюсь вообще со стейтом работать. помогите
Konstantin
канал психологической помощи андроид программистам пока не существует
Ivansuper
У тебя есть методы управления сервисом. Используй их, не вламывайся в низкие уровни
Ivansuper
Система не дура, она знает как поступить в большинстве случаев
Konstantin
что именно - это все из за карго культа
Konstantin
все из за адаптеров к ресайклер вью (
Ivansuper
Рассказывай. Только сильно много воды не лей
Konstantin
и хранении загруженого списка в адаптере, хотя я и сам знаю что адаптер - по сути - это лишь мостик между а и б
Konstantin
но в инете частенько подход кривой - храним лист в адаптере и делов не знаем. ну вот и приехал однажды к тому что адаптер не всегда чист когда фрагмент оживляется. т.е. в нем уже хранится какой то список. а клиентский код юзающий этот адаптер не в курсе, а загружает еще один список. в итоге на экране видно дублирование
Ivansuper
почему?
Ну почему ты так уперся в нужду ручного менеджемента процессов то? Андроид так построен. Это не винда 95я. Так работает система
Ivansuper
Сами процессы убиваются когда того требует ситуация
Konstantin
понятно что это дело рук андроида, а я разбираться в свое время не стал, и просто делал adapter.clear в onresume. кароч меня это перестало устраивать и хочу разобраться что делать чтобы все было как по маслу
Ivansuper
Ты пытаешься добыть доказательства того, что так поступить — плохо?
oles
ну да
Ivansuper
С какой целью?
Ivansuper
Интерес или оправдание своих действий?
oles
интересно же понимать а не просто следовать указаниям
Konstantin
та не, просто хочу узнать как, кто и зачем персистит поля моего фрагмента. я ж вроде к элементам списка даже parcelable не прикручивал, каким лешим они вообще сохраняться могут, фрагмент ведь убивается, или может я чет не знаю (скорее это)
Ivansuper
интересно же понимать а не просто следовать указаниям
Ну, ты вламываешься в управление процессами. Это раз, два — Андроиду по идее пофиг, он переварит такой подход с твоей стороны, но будь готов к тому, что где-то что-то отвалится внезапно, какой-то файл не допишется куда-то, где-то что-то еще оборвется в ненужный момент. В добавок, процесс запускается не только с одним сервисом в нем. В отдельный процесс подгружается фреймворк ресурсов, аппликейшн свой и так далее. Отдельные процессы достаточно дорогие в использовании если еще не понимать что это такое. Теперь после этого подумай, что будет тормознее — схлопнуть твой процесс системе когда ей нужны ресурсы для запуска ютуба тобой на передний план, или же каждый раз под перезапуск твоего сервиса стартовать этот процесс и загружать для его работы все снова и снова?
Ivansuper
Ну вот просто до такого можно было дойти банальной логикой
Ivansuper
Если у кого есть уточнения или поправки — прошу дополнить меня
Konstantin
ну это же явно надо указать где то, в проекте нигде этого нет
oles
Ну, ты вламываешься в управление процессами. Это раз, два — Андроиду по идее пофиг, он переварит такой подход с твоей стороны, но будь готов к тому, что где-то что-то отвалится внезапно, какой-то файл не допишется куда-то, где-то что-то еще оборвется в ненужный момент. В добавок, процесс запускается не только с одним сервисом в нем. В отдельный процесс подгружается фреймворк ресурсов, аппликейшн свой и так далее. Отдельные процессы достаточно дорогие в использовании если еще не понимать что это такое. Теперь после этого подумай, что будет тормознее — схлопнуть твой процесс системе когда ей нужны ресурсы для запуска ютуба тобой на передний план, или же каждый раз под перезапуск твоего сервиса стартовать этот процесс и загружать для его работы все снова и снова?
а что может отвалиться например, если я сам котролирую момент когда нужно прибить?
Ivansuper
Просто человеческий фактор так устроен, что можно что-то забыть. Потом эта ошибка может тебе дать по голове в продакшене
Ivansuper
Ты на столько в себе уверен?
oles
там кода мало
Ivansuper
Короче, я тебе взвесил примерные минусы
Ivansuper
Использовать или нет — вперед сам
Mike
почему?
Потому что от этого нет пользы, только вред.
Сергій
ну делай тогда )
Сергій
System.exit(0)
Ivansuper
Потому что от этого нет пользы, только вред.
Пусть он заиспользует. Потом поймет
Сергій
🌚
Влад
там кода мало
Сегодня мало, завтра будет средне, через неделю много.
Ivansuper
PS Если приложение маленькое, то тем более его нет смысла килять вручную
Mike
Пусть он заиспользует. Потом поймет
Мб просто заблуждение какое-то фундаментальное, надо объяснить.
Ivansuper
Мб просто заблуждение какое-то фундаментальное, надо объяснить.
Ну, если так, то объясни ему пожалуйста. У меня пока что нет больше видений как к нему подойти с этим
Ivansuper
ну это же явно надо указать где то, в проекте нигде этого нет
Тут такой момент, что зачастую можно допустить мелкую ошибку и получить странное поведение. У меня такое чувство, что ты попал именно в такую ситуацию, но не разобрался и теперь боишься. Расскажи подробнее что как себя вело тогда — в этом случае будет легче понять что и почему
Ivansuper
Например можно немного скривить в активности и получить двойные вызовы onCreate у фрагментов. И от непонимания потом распсиховаться
Ivansuper
(при поворотах экрана)
Konstantin
это происходит с бэкстеком
Konstantin
т.е. если захожу глубже, возвращаюсь - в резюме цепляется презентер (опять) и опять грузит список, который уже есть (с прошлого раза)
Konstantin
ну и начинает копирование ) если несколько раз зайти глубже и вернуться, каждый раз список "дописывается"
Konstantin
чтобы побыстрее отвязаться от этого я просто делал adapter.clean в резюме перед подключением презентера, ясно понятно это работает но как то не особо красиво загружать данные еще раз если они уже были, да и мне не понравился такой подход
Ivansuper
Значит ты не совсем нормально обрабатывал жизненный цикл фрагментов, получается
Ivansuper
Ivansuper
Konstantin
так и есть
Ivansuper
И если у тебя были зачистки в onDestroy, то ...
Ivansuper
NavigationDrawer скорее всего
Ivansuper
Пожалуйста, цитируй сообщения из своей линии обсуждения в следующий раз. А то это путает часто
Konstantin
вобщем я к чему подбирался
Ivansuper
DrawerLayout
Doston
https://medium.com/@ArmanSo/take-control-of-views-shadow-android-c6b35ba573e9
Отличная статья. Он в конце статьи сказал, что покажет как сделать обрезанную тень. И нету никаких статей от него. Не знаете статей на эту тему?)
Ivansuper
Не знаю тогда что у него там было. Но видимо тебе придется пустить руки сюда: https://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle