#android #android-jetpack #android-viewbinding
#Android #android-реактивный ранец #android-привязка к просмотру
Вопрос:
Когда я использую привязку к просмотру в моем RecyclerView.Такой адаптер:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val itemView1 = MyItemBinding.inflate(layoutInflater).root
val itemView2 = layoutInflater.inflate(R.layout.my_item, parent, false)
val itemView3 = MyItemBinding.bind(itemView2).root
return ViewHolder(itemView1)
}
itemView1
LayoutParams всегда имеет значение null — игнорирует атрибуты в xml, а itemView2
LayoutParams amp; itemView3
работает нормально.
Так это ошибка для привязки к просмотру ::inflate?
Ответ №1:
Параметры макета берутся из родительского макета, и если вы раздуваете без родительского макета, параметров макета не будет. Используйте перегрузку, которая принимает родительский макет:
val itemView1 = MyItemBinding.inflate(layoutInflater, parent, false).root
(Было бы неплохо также захватить ссылку на привязку, а не выбрасывать ее сразу.)