Listas con Jetpack Compose
Cómo crear una lista
Listas en Compose
private val messages: List<MyMessage> = listOf(
MyMessage("Hola Jetpack Compose 1", "Preparado?"),
MyMessage("Hola Jetpack Compose 2", "Preparado?"),
MyMessage("Hola Jetpack Compose 3", "Preparado?"),
MyMessage("Hola Jetpack Compose 4", "Preparado?"),
MyMessage("Hola Jetpack Compose 5", "Preparado?"),
MyMessage("Hola Jetpack Compose 6", "Preparado?"),
MyMessage("Hola Jetpack Compose 7", "Preparado?"),
MyMessage("Hola Jetpack Compose 8", "Preparado?"),
MyMessage("Hola Jetpack Compose 9", "Preparado?"),
MyMessage("Hola Jetpack Compose 10", "Preparado?"),
MyMessage("Hola Jetpack Compose 11", "Preparado?"),
MyMessage("Hola Jetpack Compose 12", "Preparado?"),
MyMessage("Hola Jetpack Compose 13", "Preparado?")
)
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
JetpackComposeTutorialTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
//Greeting("Android")
//MyComponent()
MyMessages(messages)
}
}
}
}
}
// Tutorial 3
//https://www.youtube.com/watch?v=_JO4Xxx0vb0&list=PLNdFk2_brsRclwvl8ruCo_q36jVbXcCCx&index=4
data class MyMessage(val title: String, val body: String)
@Composable
fun MyMessages(messages: List<MyMessage>) {
LazyColumn {
items(messages) { message ->
MyComponent(message)
}
}
}
@Composable
fun MyComponent(message: MyMessage) {
Row(
modifier = Modifier
.background(MaterialTheme.colorScheme.background)
.padding(8.dp)
) {
MyImage()
MyTexts(message)
}
}
@Composable
fun MyImage() {
Image(
painterResource(R.drawable.ic_launcher_foreground),
"Imagen de prueba",
//modifier = Modifier.background(Color.Gray).clip(CircleShape)
modifier = Modifier
.size(64.dp)
.clip(CircleShape)
//.background(Color.Gray)
.background(MaterialTheme.colorScheme.primary)
)
}
@Composable
fun MyTexts(message: MyMessage) {
Column(modifier = Modifier.padding(start = 8.dp)) {
MyText(
message.title,
//MaterialTheme.colors.primaryVariant,
MaterialTheme.colorScheme.primary,
MaterialTheme.typography.headlineLarge
)
Spacer(modifier = Modifier.height(16.dp))
MyText(
message.body,
// En colors crear val White = Color.White y val Black = Color.Black
// Añadir onBackground = White al tema oscuro y onBackground = Black al tema claro
MaterialTheme.colorScheme.onBackground,
MaterialTheme.typography.headlineMedium
)
}
}
@Composable
fun MyText(text: String, color: Color, style: TextStyle) {
Text(text, color = color, style = style)
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
fun PreviewComponent() {
JetpackComposeTutorialTheme() {
MyMessages(messages)
}
}
Instructivo de Jetpack Compose
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.