Size: a a a

Android Developers

2021 January 29

MR

Max Railian in Android Developers
Lessej
А обзервер тогда этот отключить надо?
Зачем?
Сделайте проверку что если у вас адаптера нет - создать его
Если он есть - вызвать ему какой-нибудь updateItems
источник

SG

Sergey Grieg in Android Developers
Товарищи! Настал и мой черёд обратиться с вопросом. Правда, не по разработке.
Описываю проблему: в моем городе достиг потолка (работаю в ведущей студии города, ЗП в 3 раза выше средней по городу (точную сумму называть не буду) — выше здесь просто некуда). По идее нужно смотреть на другие города и Европу — но там больше финансовый рост, а интересует рост как специалиста, да и корни уже пустил. И самое важное — кайфую от текущей команды (даже не рассматриваю уход из неё). Потому вопрос — если кто-то был в таких условиях, то как боролись с выходом на плато в плане профессионального роста? Вроде стек и без того самый актуальный, постоянно щупаю новые фичи, но словно чего-то не хватает, какого-то азарта джуна или новичка среди миддлов, когда новый опробованный фреймворк доставлял нереальное удовлетворение. А сейчас все свелось к «Полистал пару статей и доку, посмотрел репы с этой библиотекой — спокойно начал использовать», а принятие архитектурных решений уже в крови и выбор в 99% случаев абсолютно удачный.
источник

L

Lessej in Android Developers
Max Railian
Зачем?
Сделайте проверку что если у вас адаптера нет - создать его
Если он есть - вызвать ему какой-нибудь updateItems
хмм
источник

SG

Sergey Grieg in Android Developers
Sergey Grieg
Товарищи! Настал и мой черёд обратиться с вопросом. Правда, не по разработке.
Описываю проблему: в моем городе достиг потолка (работаю в ведущей студии города, ЗП в 3 раза выше средней по городу (точную сумму называть не буду) — выше здесь просто некуда). По идее нужно смотреть на другие города и Европу — но там больше финансовый рост, а интересует рост как специалиста, да и корни уже пустил. И самое важное — кайфую от текущей команды (даже не рассматриваю уход из неё). Потому вопрос — если кто-то был в таких условиях, то как боролись с выходом на плато в плане профессионального роста? Вроде стек и без того самый актуальный, постоянно щупаю новые фичи, но словно чего-то не хватает, какого-то азарта джуна или новичка среди миддлов, когда новый опробованный фреймворк доставлял нереальное удовлетворение. А сейчас все свелось к «Полистал пару статей и доку, посмотрел репы с этой библиотекой — спокойно начал использовать», а принятие архитектурных решений уже в крови и выбор в 99% случаев абсолютно удачный.
А получение новых проектов вызывает либо желание настучать по голове предыдущему разработчику(ам), либо сразу вникаешь и начинаешь работать. Даже как-то печально;(
источник

AK

Anatoliy Kernokus in Android Developers
Sergey Grieg
А получение новых проектов вызывает либо желание настучать по голове предыдущему разработчику(ам), либо сразу вникаешь и начинаешь работать. Даже как-то печально;(
Это называется зажрался. Сходи в лес , заведи собаку
источник

SG

Sergey Grieg in Android Developers
Lessej
Господа, у меня в recyclerView когда на айтеме щелкаю суитчбаттон, в объекте койче меняется, и из-за этого ЛивДата обновляется и экран возвращается в начало всего ресайкла. Как это вылечить? чтобы экран оставался там где был?
Обновляй не целиком список объектов, а конкретный элемент.
источник

L

Lessej in Android Developers
Max Railian
Зачем?
Сделайте проверку что если у вас адаптера нет - создать его
Если он есть - вызвать ему какой-нибудь updateItems
А проверку эту в обзервере делать?
источник

SG

Sergey Grieg in Android Developers
Sergey Grieg
Обновляй не целиком список объектов, а конкретный элемент.
К примеру, это может быть нечто вроде DTO с observable-полями, а сама view — не просто верстка, а layout с соответствующим байдингом. Таким образом у тебя будет меняться единственный элемент и изменения в данных не будут затрагивать список или порядок элементов в нем в самом recycler.
источник

SG

Sergey Grieg in Android Developers
А-ля:

data class Item(
   val _title: MutableLiveData<String>() = MutableLiveData(),
   val title: LiveData<String>
       get() = _title
)

// items in the recycler

val items: ArrayList<Item> = arrayListOf()

далее стандартно — при создании view holder через DataBindingUtils подтягиваем layout, отдаём binding.root, запоминаем binding, binding’у даём lifecycleOwner от view

В обработке клика забираем наш биндинг и постим новое значение в нужное поле, обновляется конкретный элемент списка (точнее mutable-значение) — data binding дальше все должен сделать сам
источник

MR

Max Railian in Android Developers
Lessej
А проверку эту в обзервере делать?
Ну вы же данные из него берёте?)
источник

L

Lessej in Android Developers
Max Railian
Ну вы же данные из него берёте?)
данные? из базы
источник

SG

Sergey Grieg in Android Developers
Lessej
данные? из базы
Room?
источник

L

Lessej in Android Developers
да
источник

MR

Max Railian in Android Developers
Lessej
данные? из базы
В общем, да
В обзервере
источник

SG

Sergey Grieg in Android Developers
Max Railian
Зачем?
Сделайте проверку что если у вас адаптера нет - создать его
Если он есть - вызвать ему какой-нибудь updateItems
Любой вызов notifyDataSetChanged() вызовет перерисовку
источник

SG

Sergey Grieg in Android Developers
Sergey Grieg
Любой вызов notifyDataSetChanged() вызовет перерисовку
Всего списка. А перерисовать нужно лишь вьюху конкретного элемента
источник

MR

Max Railian in Android Developers
Sergey Grieg
Любой вызов notifyDataSetChanged() вызовет перерисовку
До этого нужно обновить список его слов)
И не факт что ему нужно обновлять весь список
источник

SG

Sergey Grieg in Android Developers
Max Railian
До этого нужно обновить список его слов)
И не факт что ему нужно обновлять весь список
Ресайклер не запоминает набор данных, он рисует постфактум
источник

SG

Sergey Grieg in Android Developers
А переиспользует он только полученные в процессе создания холдера вьюхи
источник

И

Илья in Android Developers
у меня тут тоже вопрос был про холдер перерисовку и свайп назад, не поможете?
источник