일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- disposableeffect
- programmers
- 오블완
- filternotnull()
- 백준
- Hilt
- Kotlin
- android
- 리스트
- ContentProvider
- 배열
- jetpack
- 문자열
- 티스토리챌린지
- composelifecycle
- Java
- list
- Provider
- Python
- 자료형
- 파이썬문법
- Dependency
- 파이썬
- compose
- nullpointerexception방지
- 자바
- 자바set
- 백준파이썬
- 프로그래머스
- 자바리스트정렬
Archives
- Today
- Total
study gomi
[Android/Kotlin] text를 표시하는 floating button (jetpack compose) + button 아래에 하얀색 공백이 보이는 문제 본문
App/Android
[Android/Kotlin] text를 표시하는 floating button (jetpack compose) + button 아래에 하얀색 공백이 보이는 문제
공부하곰 2024. 10. 23. 09:32728x90
반응형
1. text만 표시하는 기본 floating button
FloatingActionButton(
onClick = { },
containerColor = Color.LightGrey,
modifier = Modifier
.clip(CircleShape)
.size(dimensionResource(R.dimen.fab_size)) // 버튼 크기 고정
) {
Text(
"test",
style = MaterialTheme.typography.labelSmall.copy(fontSize = 12.sp), // 텍스트 크기 줄이기
textAlign = TextAlign.Center,
maxLines = 1, // 한 줄로 제한
overflow = TextOverflow.Ellipsis // 텍스트가 넘치면 줄임표 처리
)
}
참고: Jetpack Compose에서 FloatingActionButton의 기본 형태는 원형이긴 하지만 Modifier.clip(CircleShape)을 추가하여 확실하게 원형으로 고정할 수 있다. text가 들어가면 모양이 일그러져서 이렇게 해줬음.
2. button 아래 (button과 그림자 사이) 무언가 하얀 영역이 보이는 문제
- 대부분 FloatingActionButton 내부에 기본적으로 적용된 여백이나 배경색 때문에 발생
- 단순히 텍스트 길이 때문에 FloatingActionButton 내부에서 여백이 추가되어 발생하는 경우, FloatingActionButton의 크기와 텍스트의 크기를 조정하면 됨
- 이걸로 안 될 경우 버튼의 elevation을 조정하거나 shadowElabation 옵션을 사용
더보기
- 버튼의 elevation을 조정하기: 그림자와 관련된 문제 → elevation 값을 낮추거나 제거하는 방법을 시도
- shadowElevation 옵션 사용: Jetpack Compose에서 버튼 그림자의 elevation을 조정할 수 있음. 이를 통해 흰색 부분이 생기지 않도록 조정
- 버튼의 배경색 또는 여백 확인: 만약 elevation을 수정해도 해결되지 않는다면 버튼의 배경색과 버튼 사이의 여백을 없애거나 modifier = Modifier.padding(0.dp)을 사용해 여백을 제거해보기
FloatingActionButton(
onClick = item.second,
containerColor = Color.LightGrey,
elevation = FloatingActionButtonDefaults.elevation(
defaultElevation = 8.dp,
pressedElevation = 12.dp
)
) {
Text(
"test",
textAlign = TextAlign.Center
)
}
참고: elevation 눌러서 들어가보면 설정할 수 있는 게 네 가지 있음(hover.... 등)
elevation(0.dp)라고만 해줘도 됨
elevation(1.dp)까지해도 문제가 지속돼서 어쩔 수 없이 elevation(0.dp)까지 준 적이 있는데 floating button이 그림자가 없어지면 굉장히 심심해짐! 그래서 그림자를 따로 줄 수 있는지 찾아봤다.
당근 빠따 가능했음→ https://taetaegom.tistory.com/100
728x90
반응형
'App > Android' 카테고리의 다른 글
Jetpack Compose에서 생명 주기 처리 / LaunchedEffect, SideEffect, DisposalEffect / 설명, 비교 요약 (1) | 2024.11.22 |
---|---|
[Android/Kotlin] floating button에 직접 그림자 주기 (0) | 2024.10.23 |
[Android/Kotlin] expandable + moveable/draggable Floating button (jetpack compose) (3) | 2024.10.23 |
[Android/Kotlin] suspend fun, let vs apply (1) | 2024.10.18 |
[Android] 뒤로가기 막기 (stop + preventing backspace) kotlin (1) | 2024.10.18 |