왕초보 안드로이드 앱 개발 도전기

3. Unit 1 연습문제

joy2learn 2024. 6. 18. 22:51

Unit 1 - pathway 3 의 연습문제를 풀어보았습니다. 

column, row, box 의 개념을 이해할 수 있었습니다. 

compose quadrant 가 가장 어려운 문제였는데, 여전히 MainActivity 하에 ...Theme 으로 생성되는 부분이나, modifier 순서에 따라 결과가 달라지는 부분은 잘 이해하지 못하였습니다. 

 

 

 

 

 

Compose Quadrant coding 주요 부분


class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            MyQuadrantTheme {
                Surface(
                    modifier = Modifier.fillMaxSize()
                        .padding(top = 30.dp, bottom = 50.dp),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Greeting(

                    )
                }
            }
        }
    }
}

@Composable
fun Greeting(modifier: Modifier = Modifier) {
    Column(modifier = modifier.fillMaxWidth(), verticalArrangement = Arrangement.Center) {
        Row(modifier = modifier.weight(1f)) {
            MyTextBox(
                text1 = stringResource(R.string.firstTitle),
                text2 = stringResource(R.string.firstDescription),
                backgroundColor = Color(0xFFEADDFF),
                modifier = modifier.weight(1f)
            )
            MyTextBox(
                text1 = stringResource(R.string.secondTitle),
                text2 = stringResource(R.string.secondDescription),
                backgroundColor = Color(0xFFD0BCFF),
                modifier = modifier.weight(1f)
            )
        }
        Row(modifier = modifier.weight(1f)) {
            MyTextBox(
                text1 = stringResource(R.string.thirdTitle),
                text2 = stringResource(R.string.thirdDescription),
                backgroundColor = Color(0xFFB69DF8),
                modifier = modifier.weight(1f)
            )
            MyTextBox(
                text1 = stringResource(R.string.fourthTitle),
                text2 = stringResource(R.string.fourthDescription),
                backgroundColor = Color(0xFFF6EDFF),
                modifier = modifier.weight(1f)
            )
        }
    }

}


@Composable
fun MyTextBox(text1: String, text2: String, backgroundColor: Color, modifier: Modifier = Modifier) {
    Column(modifier = modifier
        .fillMaxSize()
        .background(color = backgroundColor)
        .padding(16.dp),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally

    ) {
        Text(
            text = text1,
            modifier = Modifier.padding(bottom = 30.dp),
            fontWeight = FontWeight.Bold,

        )
        Text(
            text = text2,
            textAlign = TextAlign.Justify


        )
    }
}