1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import kotlinx.coroutines.delay import kotlinx.coroutines.launch class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { TableOfFive() } } } } @Composable fun TableOfFive() { var results by remember { mutableStateOf(listOf<String>()) } val coroutineScope = rememberCoroutineScope() LaunchedEffect(Unit) { coroutineScope.launch { for (i in 1..10) { val result = "5 x $i = ${5 * i}" results = results + result delay(1000) // Espera 1 segundo entre cada multiplicación } } } Column { Text(text = "Tabla del 5:", style = MaterialTheme.typography.headlineMedium) results.forEach { result -> Text(text = result, style = MaterialTheme.typography.bodyMedium) } } } @Preview(showBackground = true) @Composable fun DefaultPreview() { MaterialTheme { TableOfFive() } } |
Descripción del código
- Importaciones necesarias: Se importan las librerías necesarias para Jetpack Compose y corutinas.
- MainActivity: Se crea una
MainActivity
que configura el contenido de la aplicación. - Componente
TableOfFive
:- Se utiliza un estado
results
para almacenar los resultados de la tabla del 5. - Se obtiene un
CoroutineScope
para manejar las corutinas. - Se utiliza
LaunchedEffect
para iniciar la generación de la tabla del 5. Este efecto se ejecuta una sola vez cuando el Composable se monta. - Dentro de la corutina, se utiliza un bucle para calcular y agregar cada multiplicación a la lista
results
, haciendo una pausa de 1 segundo (delay(1000)
) entre cada multiplicación para simular un efecto de tiempo.
- Se utiliza un estado
- Interfaz de usuario: Se muestra el título «Tabla del 5» y los resultados en una columna.