일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 공부집중
- Freesound
- jetpack compose
- FSM
- bash
- DART
- 이모지
- kotlin
- Streaming
- 벤자민플랭클린
- 넷플릭스
- 명심보감
- 좋은글필사하기
- 1인개발자
- 오픈소스
- Android
- ASMR
- 코틀린
- androidx
- Coroutine
- recyclerview
- 공자명언
- 소울칼리버6
- 이모지메모
- Linux
- Firebase
- 명언모음
- 파이썬
- Flutter
- 장자명언
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
[jetpack compose] 1. Box 본문
Source code or Tip/Android(Java, Kotlin)
[jetpack compose] 1. Box
VintageappMaker 2022. 12. 7. 17:45
1. Activity의 setCompose에서 MaterialTheme를 지정한 함수 안에 Surface로 자식 View를 지정한다.
2. Surface는 화면의 최상위 View로 Container 역할을 한다.
modifier는 대부분의 View에서 사용되며 View의 속성을 지정할 때 사용된다.
3. Box는 Surface와 비슷한 Container View이다. 그리고 modifier의 메소드를 통해서
- padding(dp) <- 패딩설정
- fillMaxWidth() <- width를 최대
- fillMaxHeight() <- height를 최대
- background(Color값) <-배경색
등을 설정할 수 있다.
4. Box의 경우, Child View에서 Modifier.align을 지정하여 상단(Top), 중단(Center), 하단(Bottom)을 기준으로 처음(Start), 중앙(Center), 끝(End)를 지정할 수 있다.
전체소스
package com.psw.quick.compose.ui.activity
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.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.psw.quick.compose.ui.theme.QuickComposeTutorialTheme
class ComposeExampleBoxActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
QuickComposeTutorialTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
ExampleMain()
}
}
}
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
QuickComposeTutorialTheme {
ExampleMain()
}
}
@Composable
fun ExampleMain(
) {
Box(modifier = Modifier
.padding(10.dp)
.fillMaxWidth()
.fillMaxHeight()
.background(Color.Cyan)) {
Box(modifier = Modifier
.padding(20.dp)
.fillMaxWidth()
.fillMaxHeight()
.background(Color.Red)) {
Box(modifier = Modifier
.padding(30.dp)
.fillMaxWidth()
.fillMaxHeight()
.background(Color.White)) {
Text("😀", modifier = Modifier.align(Alignment.TopStart))
Text("😀", modifier = Modifier.align(Alignment.TopCenter))
Text("😀", modifier = Modifier.align(Alignment.TopEnd))
Text("🐯", modifier = Modifier.align(Alignment.Center), fontSize = 90.sp)
Text("😀", modifier = Modifier.align(Alignment.BottomStart))
Text("😀", modifier = Modifier.align(Alignment.BottomCenter))
Text("😀", modifier = Modifier.align(Alignment.BottomEnd))
}
}
}
}
}
[github]
'Source code or Tip > Android(Java, Kotlin)' 카테고리의 다른 글
[jetpack compose] 빠르게 시작하기 - Quick start Compose (0) | 2022.11.03 |
---|---|
[kotlin] reified 사용하는 이유 (0) | 2022.08.15 |
[kotlin] Ktor 서버 프로그래밍 - 빠르게 시작하기 (0) | 2022.07.14 |
[Android] 새로운 프로젝트로 jetpack compose를 고민한다면 한 번쯤 고민하는 내용. (0) | 2022.05.08 |
kotlin에서 DI 빠르게 이해하기 (0) | 2022.04.16 |
Comments