티스토리 뷰
회원가입 및 문진에서 가장 많이 사용하는 위젯은 Checkbox가 아닐지 생각됩니다.
실무에서 사용하다가 최근에 발견한(?) 하나의 이슈를 소개하려고 합니다.
Checkbox 의 체크 표시가 안되는 이슈
Checkbox을 사용하다보면 체크가 표시 안되는 것을 확인할 수 있습니다.
분명 소스에서는 변경하도록 하였는데 디바이스에서는 Checkbox가 표시 안되는 것일까요?
우선 제가 작성한 소스를 보여드리겠습니다.
private void setCheckBoxDrawable(CheckBox checkBox, boolean isChecked){
checkBox.setChecked(isChecked);
checkBox.jumpDrawablesToCurrentState();
}
다양한 원인이 있겠으나 제가 경험한 원인은 Checkbox 상태 변화에 따른 Animation 타이밍 이슈였습니다.
Checkbox Animation 이슈
Checkbox의 상태 변화가 될 경우 Animation이 동작하게 됩니다. Animation 동작 중 화면이 전환된 경우는 Animation 동작 도중의 화면으로 저장됩니다. 따라서 경우에 따라 Checkbox 변경이 완전히 된 경우와 Checkbox의 테두리면 변경되는 경우 등 불안정한 상태로 변경이 될 수 있습니다.
이러한 문제점을 막기 위해서 jumpDrawablesToCurrentState
함수를 제공하고 있습니다. 이 함수를 넣은 Checkbox는 Animation 도중 화면이 전환 되어도 Animation 동작 후 Checkbox 상태로 변경하게 됩니다.
정리
Checkbox Animation 이슈에 대한 정확한 판단과 대처가 필요해 보입니다. 화면 구성에 있어서 발생할 수 있는 문제로 Animation의 이슈 발생할 수 있음에 주의하여 개발해야합니다.
'프로그래밍 > Android' 카테고리의 다른 글
[Android] 카카오 로그인 간단히 알아보자 (0) | 2019.05.18 |
---|---|
Android 이메일 보내는 방법 (0) | 2018.12.22 |
Android Activity 간단히 알아보기 (0) | 2018.11.25 |
Android ButterKnife for Gradle 3.0.0 (0) | 2018.11.13 |
Android 인앱 결제 알아보자 (21) | 2018.10.12 |
- 알고리즘
- Android
- missionchina
- Android Studio
- swift
- 임용고시
- 디자인패턴
- push
- issue
- 탁구
- Kotlin
- 점수판
- IOS
- flutter
- view
- 코틀린
- 미션차이나센터
- 스코어헬퍼
- 고시문
- MCC
- 패턴
- 안드로이드
- missioon
- java
- 고시문헬퍼
- DI
- IT
- 선교
- RXjava
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |