在 Kotlin 中,我们可以使用数据绑定库将集合与 UI 组件绑定。以下是如何进行集合绑定的步骤:
android {
...
dataBinding {
enabled = true
}
}
dependencies {
...
implementation 'androidx.databinding:databinding-runtime:4.2.0'
}
<layout>
标签包裹根视图,并在其中添加 data
标签以定义要绑定的变量。例如,假设我们有一个名为 items
的集合,我们可以这样定义:<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="items"
type="List<Item>" />
</data>
<!-- 在这里添加你的 UI 组件 -->
</layout>
android:for
标签进行集合绑定。例如,如果我们有一个 RecyclerView
,可以这样绑定 items
集合:<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:for="@{items}"
tools:listitem="@layout/item_layout" />
val items = listOf<Item>(Item("Item 1"), Item("Item 2"), Item("Item 3"))
val binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.items = items
或者在 Fragment 中:
val items = listOf<Item>(Item("Item 1"), Item("Item 2"), Item("Item 3"))
val binding = DataBindingUtil.inflate(layoutInflater, R.layout.fragment_main, container, false)
binding.items = items
container.addView(binding.root)
现在,集合中的每个元素都将与 RecyclerView
的相应项绑定。当集合发生变化时,UI 组件将自动更新。