バージョン情報
0.3.0
で LazyColumnFor
が無くなって、LazyColumnに統合されたようなので、そちらを使用します。
plugins { kotlin("jvm") version "1.4.30" id("org.jetbrains.compose") version "0.3.0-build150" }
古い情報はこちら。
https://matsudamper.hatenablog.com/entry/2021/02/06/231713
本文
count
に State<Int>.value
を渡してあげます。
indexが流れてくるので自分で表示に必要なitemを取得するようになりました。
key
はAndroidのBundleに保存可能な形でないといけないようです。差分計算に使うのかなと思っています。nullを指定するとIndexが使用されます。
fun main() = Window { MaterialTheme { val listItems = remember { MutableStateFlow(listOf(0)) } Column { Column { Button( onClick = { listItems.value = listItems.value .plus(listItems.value.last() + 1) } ) { Text(text = "add list") } } val count = listItems.collectAsState().value.size LazyColumn( modifier = Modifier.fillMaxSize() ) { items( count = count, key = { index -> listItems.value[index] } ) { index -> val item = listItems.value[index] Column( modifier = Modifier.height(100.dp) ) { Text(text = item.toString()) } Divider(color = Color.Black) } } } } }