오늘의 키워드
- 이전에 수행 했던 토글 그룹 트러블 슈팅
원인
Single Selection 속성이 되어있는 Toggle Button을 클릭 시, 클릭 이전의 상태가 같이 넘어오는 현상을 발견하였다.
버튼 클릭 상태가 바뀔 떄 이전 버튼이 꺼지는 상황과 클릭한 버튼이 켜지는 상황이 생겨 리스너가 2번 불리는 것 같았다.
해결 과정
addButtonClickListener 안에 isChecked라는 속성이 있다.
reviewWritingGenderButtonGroup.addOnButtonCheckedListener { group, checkedId, isChecked ->
}
isChecked는 현재 버튼이 체크 되어있는 지 여부를 반환해준다.
그룹화된 토글 그룹을 작업 할때는 다음과 같이 수행 해주어야 한다.
Single Selection이 설정 되었기 때문에 버튼을 선택, 취소 할 때마다 콜백이 불린다.
1번을 선택하면 2번이 선택 되지 않았기 떄문에, isChecked이 한번 더 업데이트 되어, 선택되지 않았을 떄의 콜백이 또 불려 값이 꼬이게 된다.
그렇기 떄문에, isChecked 속성 제어를 통해 해결 할 수 있었다.
isChecked 값이 선택 되지 않았을 상태에서는, 아예 리스너를 수행시키지 않는 것이다.
그러면 리스너가 두 번 수행하게 되는 현상을 막을 수 있다.
reviewWritingGenderButtonGroup.addOnButtonCheckedListener { group, checkedId, isChecked ->
if (!isChecked)
return@addOnButtonCheckedListener
}
적용 후
참고자료
'내일배움캠프 7기 > TIL' 카테고리의 다른 글
내일배움캠프 7기 Android TIL 68일차 (2023.10.31) (0) | 2023.10.31 |
---|---|
내일배움캠프 7기 Android TIL 67일차 (2023.10.30) (0) | 2023.10.31 |
내일배움캠프 7기 Android TIL 65일차 (2023.10.26) (1) | 2023.10.27 |
내일배움캠프 7기 Android TIL 64일차 (2023.10.25) (0) | 2023.10.25 |
내일배움캠프 7기 Android TIL 63일차 (2023.10.24) (0) | 2023.10.24 |