Size: a a a

Android Developers

2021 February 07

ДД

Душанин Дмитрий... in Android Developers
Александр Сергеевич
да все уже, решил
Молорик, а я просто выкинул аппарат
источник

АС

Александр Сергеевич... in Android Developers
Душанин Дмитрий
Молорик, а я просто выкинул аппарат
ну юзеру же не скажешь чтоб он выкинул свой телефон)
источник

ДД

Душанин Дмитрий... in Android Developers
Александр Сергеевич
ну юзеру же не скажешь чтоб он выкинул свой телефон)
Согласен, поэтому и по новее sdk поставил
источник

ДД

Душанин Дмитрий... in Android Developers
Все же парни, про mapbox, с нуля поставил проект с картой, работает всё. Подключил к действующим проектам, ни один не потянул sdk 9.5
источник

ДД

Душанин Дмитрий... in Android Developers
Как так?
источник

VP

Vitaly Peryatin in Android Developers
Оптимально ли доверяться DiffUtil (в фоновом потоке) для обновления списка комментариев при нажатии на лайк? Или лучше самому через notify по позиции обновлять данные?
источник

ME

Maks 🤘🏻 E-notty... in Android Developers
Vitaly Peryatin
Оптимально ли доверяться DiffUtil (в фоновом потоке) для обновления списка комментариев при нажатии на лайк? Или лучше самому через notify по позиции обновлять данные?
Оптимально. Если флоу обработки лайка нормальное.
источник

VP

Vitaly Peryatin in Android Developers
Maks 🤘🏻 E-notty
Оптимально. Если флоу обработки лайка нормальное.
Во флоу обработки лайка сам комментарий обновляется дважды: сначала локально, отом при ответе от сервера
источник

ME

Maks 🤘🏻 E-notty... in Android Developers
Ну если при ответе от сервера он обновляется в руме, то проблем не будет.
источник

VP

Vitaly Peryatin in Android Developers
Статистика немного пугает
источник

HE

Herman Escobar in Android Developers
Прописал интент фильтр для аудио, как направить файл на MediaPlayer?
источник

S

Shams in Android Developers
Всем привет!
В каком методе лучше отписаться от подписки rxJava?
Читал в инете что onDestroy() не всегда вызывается.
источник

КР

Кирилл Романенко... in Android Developers
Vitaly Peryatin
Статистика немного пугает
Почему пугает? Это достаточно быстро. Самому точно не надо.
источник

VP

Vitaly Peryatin in Android Developers
Кирилл Романенко
Почему пугает? Это достаточно быстро. Самому точно не надо.
Я имел ввиду, что самому в любом случае быстрее будет обновить элемент, когда мы знаем его точную позицию. Но поразмыслив понял, что возможна ситуация с рассинхронизацией в таком случае, которую нужно будет отдельно отбработать и код становится уже не столь красивым. По статистике выше: она действительно пугающая, если вычисления выполняются в main потоке (так как нужно успевать отрисовывать кадры каждые 16ms), однако вычисления проводятся в work thread, так что DiffUtil+ListAdapter отличо подходят
источник

КР

Кирилл Романенко... in Android Developers
Vitaly Peryatin
Статистика немного пугает
Есть ещё вот такая штука
https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListDiffer

ListAdapter использует её под капотом, лучше использовать именно так.

А ещё дам совет для красивой анимации (сам вот недавно узнал): у diff utils есть 3 метода - третий про payload.

То есть примерно

object ItemChanged

override fun getChangePayload(first: Item, second: Item) = if (first.isLiked != second.isLiked) ItemChanged else null


Прикол в том, чтобы возвращать что-то не нуллабельное. Весь айтем не будет перерисовываться, только поменяется контент. И даже не надо использовать версию onBindViewHolder со списком пейлодов. :)

Забавно, что я это узнал тоже из таски, связанной с лайками.))
источник

VP

Vitaly Peryatin in Android Developers
Кирилл Романенко
Есть ещё вот такая штука
https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListDiffer

ListAdapter использует её под капотом, лучше использовать именно так.

А ещё дам совет для красивой анимации (сам вот недавно узнал): у diff utils есть 3 метода - третий про payload.

То есть примерно

object ItemChanged

override fun getChangePayload(first: Item, second: Item) = if (first.isLiked != second.isLiked) ItemChanged else null


Прикол в том, чтобы возвращать что-то не нуллабельное. Весь айтем не будет перерисовываться, только поменяется контент. И даже не надо использовать версию onBindViewHolder со списком пейлодов. :)

Забавно, что я это узнал тоже из таски, связанной с лайками.))
Спасибо, Кирилл! Только вот начал гуглить эту фичу))
источник

КР

Кирилл Романенко... in Android Developers
Vitaly Peryatin
Спасибо, Кирилл! Только вот начал гуглить эту фичу))
Я сам долго не мог понять, почему если только переопределить этот метод и вернуть не нуллабельное значение, то нет анимации полного изменения айтема, а если закомментить проверку и вернуть нулл, то есть. Оказалось, даже если areItemsTheSame вернёт true а areContentsTheSame вернёт false, анимация полного изменения будет, потому что мог поменяться весь контент, просто засеттить данные без анимации не красиво. А если возвращаешь не нуллабельные пейлоды - значит ты сам берешь на себя ответственность за анимацию айтема. Даже если ты эти пейлоды потом не используешь в onBindViewHolder. В данном случае тебе это и не надо.
источник

M

Member in Android Developers
Друзья, а как можно обойти ребилд приложения при запуске тестов? Без создания отдельного проекта
источник

Д

Дмитрий in Android Developers
Здравствуйте! Скажите пожалуйста, как может такое быть, что Dagger2 инжектит зависимость без указанного @Provides метода?
(У этой зависимости есть @Inject в конструктор, может быть, дело в этом?)
источник

Д

Дмитрий in Android Developers
Вот кусочки кода относительно вопроса:
источник