MVVM 架構
開始新項目之前,針對術語做如下說明:MVVM中的視圖模型(view model)跟你在第4章和第9章使用的Jetpack庫中的ViewModel類是兩個不同的概念。
爲避免混淆,二者在命名上做如下區分:
- 一個叫視圖模型,
- 另一個叫ViewModel。
你應該還記得,Jetpack ViewModel是一個特殊的功能類,可以用來管理和保留fragment和activity(在它們的生命週期狀態發生變化時)裏的數據。而MVVM裏的視圖模型是架構方面的一種概念。
視圖模型當然可以使用Jetpack ViewModel類來實現,但學完本章你就會知道,不使用ViewModel類也可以。
創建 BeatBox 應用
替換 MainActivity 默認佈局:
app/build.grale
dependencies {
...
implementation 'androidx.recyclerview:recyclerview:1.2.1'
}
Sync Now
代碼清單:res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
實現簡單的數據綁定
啓用數據綁定
首先,在應用的build.gradle文件裏,通過應用kotlin-kapt插件,啓用數據綁定
代碼清單:app/build.gradle
apply plugin: 'kotlin-kapt'
android {
...
dataBinding {
enabled = true
}
}
應用kotlin-kapt插件後,數據綁定就可以執行Kotlin註解處理了