Skip to content

My code doesn't work #10

@ctedltd

Description

@ctedltd

I am missing something in my code that doesn't allow for Compose Quadrant to come out 2 on top and 2 on the bottom but all side by side. What am I missing? Thanks!
package com.example.composableinfo

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.composableinfo.ui.theme.ComposableInfoTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposableInfoTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
ComposeInfoApp()
}
}
}
}
}

data class ComposableInfo(val title: String, val description: String)

@composable
fun ComposableCard(composableInfo: ComposableInfo) {
Card(
modifier = Modifier
.fillMaxSize()
.padding(16.dp)
.weight(1f)
.background(Color.White),
elevation = 4.dp
) {
Column(
modifier = Modifier
.padding(16.dp)
.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(
text = composableInfo.title,
fontWeight = FontWeight.Bold,
fontSize = 18.sp,
color = Color.Blue,
modifier = Modifier.padding(bottom = 16.dp)
)
Text(
text = composableInfo.description,
fontSize = 14.sp
)
}
}
}

@composable
fun ComposeInfoApp() {
val composables = listOf(
ComposableInfo(
title = "Text Composable",
description = "Displays text and follows the recommended Material Design guidelines."
),
ComposableInfo(
title = "Image Composable",
description = "Creates a composable that lays out and draws a given Painter class object."
),
ComposableInfo(
title = "Row Composable",
description = "A layout composable that places its children in a horizontal sequence."
),
ComposableInfo(
title = "Column Composable",
description = "A layout composable that places its children in a vertical sequence."
)
)

Column(
    modifier = Modifier.fillMaxSize()
) {
    Row(
        modifier = Modifier.fillMaxWidth().weight(1f)
    ) {
        composables.subList(0, 2).forEach { composable ->
            ComposableCard(composable)
        }
    }

    Row(
        modifier = Modifier.fillMaxWidth().weight(1f)
    ) {
        composables.subList(2, 4).forEach { composable ->
            ComposableCard(composable)
        }
    }
}

}

@Preview(showBackground = true)
@composable
fun ComposeInfoAppPreview() {
ComposableInfoTheme {
ComposeInfoApp()
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions