
package kr.co.fastcampus.part1.chapter5_4
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.foundation.layout.padding
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kr.co.fastcampus.part1.chapter5_4.ui.theme.CompositionLocalTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CompositionLocalTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting()
}
}
}
}
}
val LocalElevation = compositionLocalOf { 8.dp }
@Composable
fun Greeting() {
CompositionLocalProvider(LocalElevation provides 12.dp) {
Card(
modifier = Modifier.padding(8.dp),
elevation = LocalElevation.current
) {
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.disabled){
Column(
modifier = Modifier.padding(16.dp),
) {
Text("안녕하세요. 패스트캠퍼스")
Text("스안녕하세요. 패스트캠퍼")
Text("${LocalContentAlpha.current}")
Text("${LocalContentColor.current}")
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.high) {
Text("퍼스안녕하세요. 패스트캠")
Text("캠퍼스안녕하세요. 패스트")
CompositionLocalProvider (LocalContentColor provides Color.Magenta){
Text("트캠퍼스안녕하세요. 패스")
Text("스트캠퍼스안녕하세요. 패")
Text("${LocalContentColor.current}")
}
}
Text("패스트캠퍼스안녕하세요.")
Button(onClick = {}) { }
}
}
}
}
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
CompositionLocalTheme {
Greeting()
}
}