LaunchedEffect

一開始進入

Prerequisites:

LaunchedEffect是當「一開始進入」Compose組件時,會呼叫的區塊,可在此區塊處理耗時操作,不會對Compose產生阻塞。

語法

LaunchedEffect(Unit) {  
	// 要做的事
}

「一開始進入」Compose組件時,會呼叫的LaunchedEffect區塊,並產生500筆資料塞入list中。

img

完整程式碼

1
2
3
4
5
6
7
8
9
10
11
12
@Composable
fun lazyColumnExample6() {
  val list = remember { mutableStateListOf<String>() }
  LaunchedEffect(Unit) {
    list.addAll(List(500) { "Item $it" })
  }
  LazyColumn{
    items(list) { item ->
      Text("$item")
    }
  }
}

狀態改變

當狀態改變時,就會執行Lambda區塊{}

LaunchedEffect(狀態) {  
	// 要做的事
}
1
2
3
4
5
6
7
8
  var isExpanded by remember { mutableStateOf(false) }
  // 當 isExpanded 有變化,就會執行花括號{}中要做的事。
  LaunchedEffect(isExpanded) {
    scale.animateTo(
      targetValue = if (isExpanded) 2f else 1f,
      animationSpec = tween(5000)
    )
  }

results matching ""

    No results matching ""