반응형
안녕하세요, 오늘은 jetpack compose로 기존에 사용하던 TextView를 어떻게 사용할 수 있는지에 대해 알아보도록 하겠습니다
Text(
//보여지는 text
text = "Hello world!",
//modifier로 여러가지 설정
modifier = Modifier
//text 영역 사이즈 설정
.size(width = 80.dp, height = 100.dp)
//padding 설정
.padding(start = 10.dp, bottom = 15.dp)
//클릭 설정
.clickable(onClick = { }),
//style로 여러가지 설정
style = TextStyle(
//컬러 설정
color = Color.Blue
),
//font 굵기 설정
fontWeight = FontWeight.Bold,
//font 사이즈 설정
fontSize = 18.sp,
)
각각의 속성들의 설명은 주석으로 남겼습니다
Text() 안에 text 속성으로 text를 설정합니다.
modifier 속성으로 text의 영역 등의 설정을 해줍니다
style 속성으로 text를 커스텀 해 줍니다
Modifier로 사용할 수 있는 속성들을 아래 표로 몇 가지 정리해 봤습니다
의미 | Jetpack compose | 기존에 사용하던 XML |
가로와 세로 크기를 원하는 만큼 | size(width = 80.dp, height = 100.dp) | android:layout_width = "80dp" android:layout_height = "100dp" |
가로 세로 모두 부모 크기와 같게 | fillMaxSize() | android:layout_width = "match_parent" android:layout_height = "match_parent" |
세로 크기를 부모 크기와 같게 | fillMaxHeight() | android:layout_height = "match_parent" |
가로 크기를 부모 크기와 같게 | fillMaxWidth() | android:layout_width = "match_parent" |
가로 크기를 부모 전체 크기에서 절반을 차지하게 (다른 fillMax 속성들도 가능) | fillMaxWidth(0.5f) | android:layout_width = "0dp" android:layout_weight = "0.5" |
추가로 jetpack compose는 몇 가지 재밌는 특징이 있습니다. 그중 하나가 바로 속성 순서가 중요하다는 것인데요
위에 보여드린 코드대로 클릭 범위를 확인해보면 아래와 같습니다
예상하시는 거와 같이 padding으로 좁혀져 범위가 나오게 되는 걸 보실 수 있습니다
하지만 코드를 이렇게 clickable이 padding 속성 앞으로 오게 되면
Text(
//보여지는 text
text = "Hello world!",
//modifier로 여러가지 설정
modifier = Modifier
//text 영역 사이즈 설정
.size(width = 80.dp, height = 100.dp)
//클릭 설정
.clickable(onClick = { })
//padding 설정
.padding(start = 10.dp, bottom = 15.dp)
,
//style로 여러가지 설정
style = TextStyle(
//컬러 설정
color = Color.Blue
),
//font 굵기 설정
fontWeight = FontWeight.Bold,
//font 사이즈 설정
fontSize = 18.sp,
)
이렇게 모든 범위가 클릭 범위로 바뀌는 걸 확인할 수 있습니다. 이유는 단순합니다, padding을 하기 전에 먼저 클릭 속성을 설정해줬기 때문입니다!
반응형
'Android' 카테고리의 다른 글
RecyclerView + DiffUtil를 이용해 보자! (feat.Kotlin) (0) | 2022.04.13 |
---|---|
[Android] Firebase에서 코루틴을 사용해보자! (feat.Firestore) (0) | 2022.03.11 |
[Android] Library를 만들고 JitPack으로 배포해보자! (0) | 2021.12.30 |
[Android] 쉽고 간편한 Dagger Hilt를 사용해 보자! (0) | 2021.12.29 |
Clean Architecture + MVVM + Coroutine + Hilt + Retrofit을 이용하여 안전하게 Github API를 호출해 보자! (0) | 2021.12.27 |