Комментарии 24
Ок, Build speed impact… так а в чём отличие кодогенерации для DataBinding и ViewBinding?
1) DataBinding работает только с вью которые строятся через layout тег.
2) ViewBinding не поддерживает биндинг переменных и выражения в разметке.
Лучше поздно, чем никогда.
Использование в RecyclerView.ViewHolder
— это решение отсебятины вы ведь сами написали, в отличии от всего того что выше прямиком пришедшее из документации?
UPD: добавьте тег перевод, пожалуйста
А ViewBindings выглядит как некий промежуточный вариант между текущим DataBinding и вероятным будущим Jetpack Compose
Зачем нужен велосипед? Есть же databindig, отличная вещь
Не во всех проектах используется databinding, а View Binding решает очень распространенную задачу, и начать его применять достаточно легко.
ResultProfileBinding.inflate(layoutInflater)
А там только 1 параметр передать можно? Без родительского контейнера как в обычном inflate(id, viewGroup, attach)
? Таким образом не потеряются ли LayoutParameters, которые я описал в xml? Например в том же примере с RecyclerView, если я задам item_person.xml
высоту в 50dp, то разве она не будет заменена на WRAP_CONTENT, поскольку он является значением по-умолчанию для LinearLayoutManager? Или если этот layout – кусок ConstraintLayout'a, который я добавляю в рантайме?
Проект не компилируется, если добавить один layout в другой через include и добавить id
Создатель Butter Knife уже рекомендует переключаться на View Bindingа можно пожалуйста ссылку на то, где он рекомендует?
Больше предпочитаю KTX, поскольку boilerplate заключается только в добавлении интерфейса для ViewHolder.
Здесь единственный boilerplate это
private lateinit var binding: ResultProfileBinding
binding = ResultProfileBinding.inflate(layoutInflater)
Но думаю это можно вынести в шаблон фрагмента, поскольку обычно работа идет в них.
Долгожданный View Binding в Android