Compose for DesktopのLinearProgressIndicatorとCircularProgressIndicatorのサンプル

@Composable
fun App() {
    var progress by remember { mutableStateOf(0f) }

    MaterialTheme {
        Column {
            Button(
                modifier = Modifier.fillMaxWidth(),
                onClick = {
                    flow {
                        for (i in 0..100) {
                            emit(i / 100f)
                            delay(50)
                        }
                    }
                        .onEach { progress = it }
                        .launchIn(CoroutineScope(Dispatchers.Default))
                },
            ) {
                Text(text = "Run")
            }
            LinearProgressIndicator(
                progress = progress,
                modifier = Modifier.fillMaxWidth()
            )
            CircularProgressIndicator(
                progress = progress
            )
        }
    }
}

fun main() = application {
    Window(onCloseRequest = ::exitApplication) {
        App()
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください