Dmytro
Здравствуйте, как поднимать экран вместе с открытием клавиатурой.. и опускать когда она закрывается? Например как в телеграме
Ruslan
но есть целые библиотеки для этого, в нескольких проектах уже видел. гибче, удобнее и все такое.
Ruslan
Ого))
https://github.com/Crysis21/KeyboardHeightProvider https://github.com/AzimoLabs/AndroidKeyboardWatcher ну как библиотеки, там по паре классов. но они оборачивают как раз эти флаги, плюс можно размер клавы посмотреть в пикселях, если нужен
Mike
Это где вообще? AIDE? Ей пользуются три человека на весь чат.
Селера
Android Studio
Селера
Или ты о чём падажи, ща, я не понимаю, две секунды
Mike
🤔
Anonymous
Android IDE
Селера
Не, смотри, еще раз объясню. Вот у меня на компе стоит ведро студия и она по ADB с моим телефоном связывается и там запускает приложение.
Селера
И вот 2-3 запуска и всё, Failed to install APK, а потом тот эксепшен
Anonymous
бле
Селера
Lineage
Dj
На MIUI это говно лечилось его отключением
Селера
Дак еще и дело в том, что никогда такого не было. Ну то есть, до этого всё работало без проблем, сейчас же хз. Я попробовал то, что чуваки советовали тут: https://stackoverflow.com/questions/52060284/android-app-not-installed Но чот как-то всё равно, 2-3 успешных запуска, а потом всё, танцую с перезапуском телефона и ребилдом проекта.
Mike
Надо подробностей. Как именно failed to install и с каким стеком там exception.
Селера
Ну сейчас попробую, если нет, отправлю уже весь стак трейс
Сергей
Я вот думал, может можно как то растянуть по времени создание и байндинг вьюх списка? Может LayoutAnimation такое умеет?
ну, можно байндинг в отдельные потоки выделить. Наверное. То есть если там есть что-то грузящее процессор - в ранэйбл эту задачу, показать заглушку и пускай доделывает себе, как доделает - покажет. Но скорее всего в архитектуре проблема
Сергей
иногда в его процессе не просто setText / setImageBitmap делают, а что то еще считают. Можно обсчет в другой поток, а оттуда runonuithread ом дернуть вид.
Сергей
но если там что то считают -0 то уже архитектура может быть ккривой
Sergey
Я вот думал, может можно как то растянуть по времени создание и байндинг вьюх списка? Может LayoutAnimation такое умеет?
В RV ты можешь попробовать сделать следующее - в onCreateViewHolder вернуть пустой FrameLayout и запустить инфлэйт своего сложного лэйаута через AsyncLayoutInflater, когда он заинфлэйтится - сделать frameLayout.addView
Селера
Окей, это чото с проектом в студии было
Селера
мне кажется или 95% времени работы любой ведро разраб просто пытается починить андроид студию, а не пишет код
Сергей
кажется. В первый месяц освоения все слетало ежедневно, потом все как обрезало
Селера
кажется. В первый месяц освоения все слетало ежедневно, потом все как обрезало
Так в том-то и прикол, никогда раньше я с проблемами студии вообще не сталкивался, она просто работала, а потом что-то поменялось, причём как всегда поменялось тогда, когда это меньше всего нужно, ибо сроки горят
Селера
Но ладно, это уже офтопы пошли
Nick
Есть ли какой-нибудь способ проверить какие методы вызываются в каких потоках?
Sergey
А, ну тебе руками придётся написать механизм
Ruslan
Товарищи, подскажите как лучше быть. Есть в базе список событий. Пользователь может добавлять события в избранные, а также может добавлять их в календарь. Это два разных списка и их надо оба хранить. Так вот, есть дата класс data class Event( val id: Long, ... var isFavourite: Boolean = false, var isPlanned: Boolean = false ) и мне иконками надо показывать пользователю, что он запланировал, а что просто сохранил. как я думаю сделать - будет две дополнительных таблицы - избранное и запланированное, со списками айдишников. и при запросе списка событий из базы я просто буду проверять есть ли событие в этих списках и проставлять ему флаги соответствующие. но мне это кажется не самым элегантным решением. События хранятся отдельной таблицей потому что их данные периодически обновляются с сервера. Так бы можно было просто им флаги менять и все. А с этим обновлением никак не придумаю как быть
Sergey
onBindViewHolder
Можно попробовать - в onCreateViewHolder возвращать фрэйм, а в onBindViewHolder запускать инфлэйтинг, там тебе будут доступны данные для биндинга. Но ещё подумай о механизме «отписки» от инфлэйтинга на ресайкле
Mike
Товарищи, подскажите как лучше быть. Есть в базе список событий. Пользователь может добавлять события в избранные, а также может добавлять их в календарь. Это два разных списка и их надо оба хранить. Так вот, есть дата класс data class Event( val id: Long, ... var isFavourite: Boolean = false, var isPlanned: Boolean = false ) и мне иконками надо показывать пользователю, что он запланировал, а что просто сохранил. как я думаю сделать - будет две дополнительных таблицы - избранное и запланированное, со списками айдишников. и при запросе списка событий из базы я просто буду проверять есть ли событие в этих списках и проставлять ему флаги соответствующие. но мне это кажется не самым элегантным решением. События хранятся отдельной таблицей потому что их данные периодически обновляются с сервера. Так бы можно было просто им флаги менять и все. А с этим обновлением никак не придумаю как быть
нормально всё
Mike
Котрый меня не спасает(
какая вёрстка, какой код байндинга, что видно в профайлере?
Sergey
не нужно этого делать, в ресайклере есть prefetch
Префетч это ведь не об этом совсем, камон
Sergey
Котрый меня не спасает(
Ты погугли статью от чуваков из spotify
Sergey
Они делали ровно то, что нужно
Sergey
Я просто деталей реализации не вспомню ща
Mike
Префетч это ведь не об этом совсем, камон
вообще да, если инфлейт распараллелить, может быть прям классно
Himars
какая вёрстка, какой код байндинга, что видно в профайлере?
Верстка элемента - констрейнт с набором обычных вьюх. В списке сразу видно примерно 20 элементов. Таких списков 2. Плюс третий список на несколько больших пикч. И все это инициализируется +- в один и тот же момент что вызывает подзависания UI Помимо этого на экране ещё плеер)
Himars
ну вот констреинт тормозит и байндинг картинок может
Вот и я думаю за констрейнт. На iOS таких проблем нет)
Сергій
констреинт тяжелый для ресайклер вью )
Himars
Это на одном экране все?
Ну там пейджер на 2 списка и один список отдельно.
Mike
констреинт тяжелый для ресайклер вью )
что значит «для ресайклер вью»? А без ресайклера он быстрый, что ли?
Himars
констреинт тяжелый для ресайклер вью )
Та UI перегруженный получается. Я не думаю что на нескольких linear+relative будет экономнее. Но хз
Сергій
Mike
для активити например не так критично будет
ну это про количество, а не про ресайклер
Sergey
Тебе можно тут подтьюнить конфиг списка - подумай, может тебе вьюхолдер пул сделать общий для этих списков
Himars
Как то все печально...
Mike
Как то все печально...
покажи вёрстку уже, чё мы гадаем
Mike
или профайлер смотри
Сергій
у меня была аналогичная ситуация, решил разбив большие айтемы на вью тайпы, стало легче
Сергій
ну и в некоторых местах отказался от констреит леяута
Philipp
чуваки, а есть здесь те, кто дропнул универ или не ходил в него вообще? как работается, не жалеете? (или вдруг жалеете, что закончили)
Mike
чуваки, а есть здесь те, кто дропнул универ или не ходил в него вообще? как работается, не жалеете? (или вдруг жалеете, что закончили)
А что ты хочешь извлечь из ответа? Ну кто-то дропнул, кто-то — нет. Кто-то жалеет, кто-то — нет.
Philipp
А что ты хочешь извлечь из ответа? Ну кто-то дропнул, кто-то — нет. Кто-то жалеет, кто-то — нет.
поскольку у нас принято поступать и заканчивать, людей без универа в айти довольно мало, интересно узнать опыт тех, кто решил пойти другим путём
Himars
Сегодня не получится Домой еду Профайлер мне как раз прогрузку списков не хочет показывать ( стек трейс) наверное из-за вызова из корутины. Отключал вставку данных в списки - все летает. Корутины отрабатывают очень быстро. А вот со списками жесть. Где можно было добавлял уже setHasStableIds и fixedSize Не очень то и помогло. Переписал полностью айтем одного списка с constraint на linear. Но все равно лагает и все.
Philipp
Я ничего айтишного не заканчивал, только техникум по электронике. Что интересует?
не было никогда упущенных возможностей из-за этого? какая-то работа, где нужна была бумажка, другое отношение к тебе, или какие-то неполученные знания
а почему ходишь тогда?
Хвосты закрыть ток
Mike
не было никогда упущенных возможностей из-за этого? какая-то работа, где нужна была бумажка, другое отношение к тебе, или какие-то неполученные знания
Ну про неполученные знания ничего не могу сказать, т. к. я их не получил. Про упущенные возможности тоже ничего не понятно, т. к. на мудацком hh можно отказывать без объяснений.