일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- ContentProvider
- Hilt
- 자바리스트정렬
- 백준파이썬
- programmers
- 오블완
- 파이썬
- 리스트
- 배열
- 자바set
- 문자열
- disposableeffect
- nullpointerexception방지
- filternotnull()
- Dependency
- 백준
- Provider
- Java
- list
- Python
- compose
- Kotlin
- android
- jetpack
- 파이썬문법
- 자바
- composelifecycle
- 자료형
- 프로그래머스
- 티스토리챌린지
Archives
- Today
- Total
study gomi
[Compose] 연속 클릭 동작 composable 본문
728x90
반응형
일반적으로 쓰는 OnClickCountListener 참고
[Android/Kotlin] 일정 횟수 클릭 시 이벤트 (5번 연속 터치)
💌 [Android/Kotlin] 일정 횟수 클릭 시 이벤트 (5번 연속 터치) 안드로이드 설정에서 빌드번호를 연타하면 개발자 모드를 진입 하듯이, 나도 어떤 히든 부분을 몇초안에 일정 횟수를 연타 했을 때 관
velog.io
Compose에서 View가 없기 때문에 그대로 사용하기는 어렵다.
클릭 수를 추적할 수 있도록 remember와 LaunchedEffect를 사용해 Compose 환경에서 더 적합하게 변경해야 함.
1. ClickCount 5번 / 5번 연속 클릭 감지하는 composable
@Composable
fun rememberClickCount(
onCountClick: () -> Unit,
targetCount: Int = 5,
intervalMillis: Long = 1000L
): (()-> Unit) {
var clickCount by remember { mutableStateOf(0) }
var lastClickedTime by remember { mutableStateOf(0L) }
return {
val currentTime = System.currentTimeMillis()
if (currentTime - lastClickedTime < intervalMillis) {
clickCount++
} else {
clickCount = 1
}
lastClickedTime = currentTime
if (clickCount >= targetCount) {
onCountClick()
clickCount = 0
}
}
}
2. 사용 예시
@Composable
private fun MyCompose() {
val onTextClick = rememberClickCount(
onCountClick = { Timber.i("Text clicked 5 times!") } // 로그 출력
)
Text(
text = "text 값 ..",
modifier = Modifier.clickable {
onTextClick()
}
)
}
- 일단은 로그를 출력하게끔 해뒀다.
728x90
반응형
'App > Android' 카테고리의 다른 글
[Android/Kotlin] text를 표시하는 floating button (jetpack compose) + 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 |
[Compose] longclick + longclick 안 될 때 (0) | 2024.10.14 |