我正在学习这门关于 RecyclerView 和数据绑定的课程。
除了制作自定义/更复杂的设置器BindingAdapter
之外,使用“正常”方式有什么好处?性能有提升吗?
版本1:
xml:
<TextView android:id="@+id/sleep_length" android:layout_width="0dp" android:layout_height="20dp" ... tools:text="Wednesday" />
适配器:
fun bind(item: SleepNight) { val res = itemView.context.resources sleepLength.text = convertDurationToFormatted(item.startTimeMilli, item.endTimeMilli, res) }
版本 2(数据绑定):
xml:
<TextView android:id="@+id/sleep_length" android:layout_width="0dp" android:layout_height="20dp" app:sleepDurationFormatted="@{sleep}" ... tools:text="Wednesday" />
适配器:
fun bind(item: SleepNight) { binding.sleep = item }
绑定工具:
@BindingAdapter("sleepDurationFormatted") fun TextView.setSleepDurationFormatted(item: SleepNight){ text = convertDurationToFormatted(item.startTimeMilli, item.endTimeMilli, context.resources) }