在 Kotlin 中,我們可以使用數(shù)據(jù)綁定庫將集合與 UI 組件綁定。以下是如何進行集合綁定的步驟:
android {
...
dataBinding {
enabled = true
}
}
dependencies {
...
implementation 'androidx.databinding:databinding-runtime:4.2.0'
}
<layout>
標簽包裹根視圖,并在其中添加 data
標簽以定義要綁定的變量。例如,假設(shè)我們有一個名為 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)
現(xiàn)在,集合中的每個元素都將與 RecyclerView
的相應(yīng)項綁定。當集合發(fā)生變化時,UI 組件將自動更新。