Home > Back-end >  Get Data from internet and set the data in LazyColumn
Get Data from internet and set the data in LazyColumn

Time:01-24

I want get Data(with an api) from internet and set the data in LazyColumn So I use this

@Composable
fun LazyColumn() {
    val list by remember { mutableStateOf(arrayListOf<HelloData>()) }
    Thread {
        for (index in 0..100) {
            list.add(HelloData(JSONObject(URL("https://ovooa.com/API/sjtx/api?form=女头").readText()).getString("text")))
        }
    }.start()


    LazyColumn(Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(4.dp)) {
        items(list) { item ->
            Image(
                painter = rememberImagePainter(item.url, builder = {
                    crossfade(true)
                    diskCachePolicy(CachePolicy.DISABLED)
                    memoryCachePolicy(CachePolicy.DISABLED)
                }),
                contentDescription = null,
                modifier = Modifier.size(200.dp)
            )
        }
    }
}

data class HelloData(val url: String)

It's not working.
I just want get the data from my api,then put them in an Image.
I can achieve it easily in traditional Android Development.

CodePudding user response:

Use mutableStateListOf instead of mutableStateOf. mutableStateListOf detects changes to the list items whereas mutableStateOf will only detect changes to the list object.

  •  Tags:  
  • Related