명령형(xml) VS 선언형
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge() ---> 여기까진 같음
setContent { --> 중괄호 이후엔 compose 코드가 온다고 생각함.
Compose1Theme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting( --> 여기서 부터 코드를 작성한다고 보면됨.
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}
기본 세팅
package com.ksj.compose1
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.ksj.compose1.ui.theme.Compose1Theme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
Compose1Theme {
MainScreen()
}
}
}
}
@Composable
fun MainScreen() {
Column {
Text("Hello World")
Text("컴포즈 쉽네여")
Row {
Text("Row")
Text("가나다라")
}
}
}
@Preview(showBackground = true)
@Composable
fun MainScreenPreview(){
MainScreen()
}
column 세로로 나열됨
Text 는 항상 String (숫자넣으면 밑줄그임)
rememer{ mutablestateof() }
composeble 로 선언된것들은 항상 상태를 생각
전역변수로 사용하면 되지 않냐?