UI/UX - RecyclerView. Часть 2. Clicks, DiffUtils. [RU, Android] / Мобильный разработчик

UI/UX - RecyclerView. Часть 2. Clicks, DiffUtils. [RU, Android] / Мобильный разработчик

Mobile Developer

5 лет назад

6,508 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@lunamarsword
@lunamarsword - 07.09.2019 10:45

все суупер

Ответить
@nightscream3687
@nightscream3687 - 07.09.2019 11:20

Ссылки на статью в описании нет((

Ответить
@mrrobot8923
@mrrobot8923 - 07.09.2019 11:49

А где ссылка, в которой описан подход делегатов?

Ответить
@ruslan_popesku
@ruslan_popesku - 07.09.2019 14:49

Давай на Flutter обзорчики!

Ответить
@ki16or
@ki16or - 07.09.2019 23:52

А вот зря, что не разобрался с ConstraintLayout. Очень удобный. Я после него на RelativeLayout смотреть не могу. Уродство сплошное.
Хотя, обычно в макетах всяко соблюдается линейная структура, поэтому родитель Linear, а внутри обычно Frame или Constraint, потому что типа как бы нельзя делать иерархию LinearLayout друг в друге.
ps: У Constraint есть некоторые кривоватости.
1. Например, есть Group в которые можно положить группу элементом и менять визибили сразу у всей группы. Вроде бы норм. Но после этого становится нельзя менять визибилити отдельного элемента, что странно. Я поначалу подумал, что прикольно насоздавать групп, если логика подразумевает скрытие части элементов, и помещать группы в группы, но чота видимо в гугле до этого не додумались.
2. барьеры. на новейших AS не пробовал, но вроде как пока на превью интерфейс не отрисовывается правильно.

Ответить
@ki16or
@ki16or - 08.09.2019 00:38

Недавно понадобилось сделать поддержку пагинации в RecyclerView.
Решил воспользоваться гугловым. Там где нужно выбрать от какого DataSource наследоваться, и использовать PagedListAdapter.
Вот тут то я увидел, что хэдер не так и просто сделать добавив к getItemCount размер данных + 1. Хрень получается.
Не встречался с таким?
По быстрому разобрался с этим, проверяя что на вьюхолдер биндится нулевой элемент и показывая скрытую на других позициях ViewGroup.

Ответить
@AndrewZayts14
@AndrewZayts14 - 08.09.2019 09:08

Почему вместо interface не используете лямбду? listener: (txt:String?, url:Image?) -> Unit

Ответить
@markkhakimulin592
@markkhakimulin592 - 12.09.2019 11:04

Хорошее продолжение. А как сбайнить только часть полей, например если не нужно перерисовывать полностью а только конкретное поле.Раньше это делалось с использованием полей payloads а как это делается если используется только одна переменная мутабельного значения для датабайнинга?

Ответить
@FAIDER29
@FAIDER29 - 13.09.2019 14:40

Круто. Спасибо!
А можно это и последующие примеры на гит кидать? Что бы мы могли полазить и посмотреть ещё раз что и как ?

Ответить
@sjsjjdnjisjwjeuudn
@sjsjjdnjisjwjeuudn - 20.04.2020 13:29

Привет. Спасибо за видео. Расскажи еще, пожалуйта, про paging library и про бесконечный список.

Ответить
@sjsjjdnjisjwjeuudn
@sjsjjdnjisjwjeuudn - 20.04.2020 15:49

Еще стоит отметить, что если делать прям так, как на видео, то можно столкнуться с фризами приложения при пересчете списка, если список будет достаточно большим, поскольку операция выполняется на ui треде. Для потенциально больших списков лучше использовать AsyncListDiffer, в котором уже за вас сделана работа в другом треде.

Ответить
@dmitriyobidin6049
@dmitriyobidin6049 - 21.11.2020 19:19

Как же всё многословно для такой базовой функциональности для мобильных приложений :)

Ответить
@РусланСамарбаев
@РусланСамарбаев - 04.01.2021 01:46

как поставить лайк видосу еще раз?!))) Я целый день тупил не знал, как решить проблему(( посмотрел 15 минут видео и все?! нет, ты понимаешь?! и все решилось!! почему я раньше не увидел этот видос! крутяк!

Ответить
@paulsoja2732
@paulsoja2732 - 10.01.2021 12:03

не встречал такого, чтоб все айтемы наследовались от sealed класса. Обычно вместо него используют интерфейс.

Ответить
@voicetv9048
@voicetv9048 - 28.12.2022 12:11

Вопрос: Вы обращались к recyclerMain без использования findViewById или View Building это как ?

Ответить