Jetpack Compose로 Scroll Picker 만들기
·
Jetpack Compose
Scroll Picker 사용화면해당 휠 피커는 연, 월, 일을 선택하는 휠 피커이며 원하는 항목을 사용하도록 커스텀할 수 있다. 예를 들어 맑음, 흐림, 비, 눈, 강풍처럼 날씨를 선택하는 휠 피커를 만들 수도 있다. 코드 설명- 변수// 초기값(2025년 3월)val yearMonth: YearMonth by remember { mutableStateOf(YearMonth.now()) }// ListStateval yearListState = rememberLazyListState(yearMonth.year - 1900)val monthListState = rememberLazyListState(yearMonth.monthValue - 1)// 변수val density = LocalDensity...
버전 충돌로 인한 오류, 안정화 버전으로 해결하는 법
·
Android
시작하며앱 개발 중 텍스트필드에 입력이 제대로 되지 않는 문제가 발생하였다. 글자가 입력 도중 사라지기도 하고 자음은 단독으로 입력되지 않았다. 처음에는 단순한 버그라 생각하고 재시작, 캐시 초기화 등등 일반적으로 해볼 수 있는 방법을 모두 해보았지만 문제는 해결되지 않았다. 도와줘요 ChatGPT먼저 챗GPT에게 물어보았고 이러한 답변을 받았다. 하지만 이미 재구성 최적화를 위해 많은 텍스트필드를 TextFieldState를 사용하는 것으로 바꿔두었고(이전 글 참고) 설마 전부 되돌려야 하나 싶었다. 일단 해결 방법을 보고 텍스트필드 한 개만 value/onValueChange로 롤백해 보았고 슬프게도 문제없이 동작하였고 설마 한글만 그러겠어 싶어서 영어도 작성해 봤지만 더 슬프게도 문제없이 입력되었다..
Jetpack Compose BasicTextField(TextFieldState) 사용하기
·
Jetpack Compose
시작하며BasiceTextField에는 value/onValueChange를 사용하는 버전과 TextFieldState를 사용하는 버전이 존재한다. 이 글에서는 TextFieldState를 사용하는 BasicTextField에 대해 자세히 알아본다. TextFieldState에 대한 내용은 아래 글에서 설명하였다. 2024.10.24 - [Jetpack Compose] - Jetpack Compose TextFieldState 사용하기 Jetpack Compose TextFieldState 사용하기시작하며Compose의 TextField로는 String과 TextFieldValue를 사용하는 두 개의 버전이 존재한다. TextFieldValue는 selection을 포함하고 있는 클래스로 String을 ..
Jetpack Compose TextFieldState 사용하기
·
Jetpack Compose
시작하며Compose의 TextField로는 String과 TextFieldValue를 사용하는 두 개의 버전이 존재한다. TextFieldValue는 selection을 포함하고 있는 클래스로 String을 사용하는 기본 TextField에 커서 위치를 조절할 수 있는 기능이 추가된 버전이다. 하지만 일반 TextField는 커스텀이 어려운 편이라 커스텀하기 용이한 BasicTextField를 사용하게 되는데 BasicTextField에는 기존 두 가지 버전 이외에도 TextFieldState를 사용하는 버전이 추가되어 총 세 가지 버전이 존재한다. 이 글에서는 그중에서 TextFieldState이 사용되는 BasicTextField와 TextFieldState에 대해 알아본다. TextFieldS..
Jetpack Compose로 해시태그(Hashtag) 입력 기능 만들기
·
Jetpack Compose
해시태그(Hashtag)시작하며제작 중인 앱 Stashit(스태싯, 전 가칭 ReReminder)은 서랍, 창고 등 다양한 장소에 보관해 둔 물건들을 기록할 수 있는 앱이다. 카테고리와 보관 장소 외에도 추가로 사용자가 직접 태그를 설정할 수 있도록 하기 위해 해시태그 입력 기능을 만들게 되었다. 사용화면&기능 소개• 단어를 입력하고 확인(화면에서는 다음)을 누르면 단어 앞에 #(해시)를 붙이고 끝에 공백을 추가한다.- '안드로이드', '코틀린', '컴포즈'를 해시태그로 만들었다.- 단어를 입력할 때 앞뒤 공백은 제거한다. • 확인을 눌렀을 때 기존에 존재하던 태그가 없다면 삭제한다.- '컴포즈'에서 '즈'를 지우고 확인을 눌러 '컴포즈'가 삭제되고 '컴포'가 해시태그가 되었다. • 확인을 눌렀을 때 단..
Jetpack Compose Ripple(물결) 효과 제거하기
·
Jetpack Compose
시작하며이 글에서는 ripple 효과를 일으키는 요인들과 ripple 효과를 없애는 방법들을 알아본다. clickable 분석fun Modifier.clickable( interactionSource: MutableInteractionSource?, indication: Indication?, enabled: Boolean = true, onClickLabel: String? = null, role: Role? = null, onClick: () -> Unit) = clickableWithIndicationIfNeeded( interactionSource = interactionSource, indication = indication) { intSource, i..