Jetpack Compose為目前Android 推薦使用的UI Framework,與傳統的XML不同,Compose 提供了宣告式UI方法,透過Composable Functions來定義UI。這種方式讓UI跟狀態產生關聯,透過狀態的變化來自動觸發UI的更新,無需手動操作。
只需描述當前應該顯示什麼,而不需要詳細說明如何具體更新介面。這種方法專注於描述UI的最終狀態,讓系統自動處理狀態變化時的UI更新。
例如:UI 會根據 name
變化自動更新。
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}
命令式語法在執行事件時,可以選擇指定的物件來更改其狀態。但在宣告式中,因為無法取得指定物件,因此需要事前將狀態與指定物件(UI)綁定,則以在狀態變化時自動更新UI。
範例:
命令式:btn在執行事件時可以指定物件(tv)來更改其狀態。
binding.btn.setOnClickListener {
binding.tv.text = "btn onclick"
}
宣告式:Text事先就與mName這個變數進行綁定,因此在mName進行變化時自動更新UI。
@Composable
fun Greeting(modifier: Modifier = Modifier) {
val mName = remember { mutableStateOf("World") }
Column {
Text(
text = "Hello ${mName.value}!",
modifier = modifier
)
Button(
onClick = {
mName.value = "Android"
}
) {
Text("Submit")
}
}
}
下一篇會開始Android Studio 建立Compose 專案以及常用的功能