小编yaz*_*yed的帖子

在 kotlin 中将项目异步添加到 MutableList

我正在试验 Kotlin 协程。

说我有一个可变列表:

val list = mutableListOf<String>()
Run Code Online (Sandbox Code Playgroud)

我启动了 50 个这样的协程:

runBlocking {
    for (i in 1..50) {
        launch(Dispatchers.IO) {
            delay(1000)
            list.add(i.toString())
        }
    }
}
list.forEach { println(it) }
Run Code Online (Sandbox Code Playgroud)

显然,尽管存在“延迟(1000)”,但操作仍需要大约一秒钟,因为它们是异步运行的

这些是不会引起问题的简单操作,但是如果我同时写入很多大字符串,某些操作会失败吗?

如果使用 appendText 函数写入本地文件,某些操作是否会失败,因为文件可能被另一个写入操作锁定?

kotlin kotlin-coroutines

6
推荐指数
1
解决办法
4283
查看次数

Android Compose ConstraintLayout 问题

撰写版本:1.0.0-beta04.

约束布局-撰写版本:1.0.0-alpha05.

可组合:

@Composable
fun comp1() {
    Surface(Modifier
        .fillMaxWidth()
        .height(50.dp), color = Color.Red) {

        ConstraintLayout(Modifier.fillMaxSize()) {
            val guide_line = createGuidelineFromAbsoluteRight(.2f)
            val (icon_ref, box_ref, spacer_ref) = createRefs()
            
            Icon(Icons.Filled.Search, null,
                modifier = Modifier.constrainAs(icon_ref) {
                    absoluteLeft.linkTo(guide_line)
                    absoluteRight.linkTo(parent.absoluteRight)
                    top.linkTo(parent.top)
                    bottom.linkTo(parent.bottom)
                }
            ) 

            Box(Modifier
                .background(Color.Blue)
                .fillMaxSize()
                .constrainAs(box_ref) {
                    absoluteLeft.linkTo(parent.absoluteLeft)
                    absoluteRight.linkTo(guide_line)
                    top.linkTo(parent.top)
                    bottom.linkTo(parent.bottom)
                }) {}

            Spacer(Modifier
                .background(Color.Yellow)
                .width(2.dp)
                .fillMaxHeight()
                .constrainAs(spacer_ref) {
                    absoluteRight.linkTo(guide_line)
                })
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

预览:

在此输入图像描述

在此输入图像描述

正如您所看到的,这些项目并不像人们预期的那样受到限制。view_based 中的视图ConstraintLayout不会绘制到屏幕之外,除非约束被搞乱或者是故意的。

android android-jetpack-compose

6
推荐指数
1
解决办法
3675
查看次数