반응형
binding null cannot be cast to non-null type VB
베이스 프레그먼트에 binding데이터를 넣어둔뒤
바텀시트 동작시 키보드가 뜨도록 작업이 되어있었습니다.
바텀시트 호출 -> 키보드 올라오는 도중 (해당 화면 종료) -> 바텀시트 내려가면서 키보드 Hide
이미 화면이 종료되어 binding이 null이었습니다!
BaseFragment
이렇게 선언 되어있었는데 null이 됩니다
근데 또 화면에 lateinit으로 된곳은 null이 되지 않는 것 같습니다!?
private lateinit var binding
일단 내가 작업하는 소스에는 이렇게 두가지의 코딩이 있었습니다.
1. 번의 해결은 화면이 종료되었는지 판단하여서 호출하지 않도록 해결
open val isAttachedView: Boolean
get() = activity != null && isAdded && !isFinishing
open val isFinishing: Boolean
get() = activity == null || requireActivity().isFinishing
2. 번의 해결은
binding이 null이 아니었으므로 키보드 내릴 때 InputMethodManager를 null체크!
lateinit으로 선언 했을 때에는 if (::binding.isInitialized) { 이렇게도 binding체크를 해볼 수도 있겠네요!
저는 1번의 해결방법으로 해결 하였습니다!!
참조 :
같은회사 브래들리의 조언 bb
반응형
'안드로이드' 카테고리의 다른 글
WebView zoom in/out 안될 경우 (0) | 2023.06.14 |
---|---|
Android equals와 equalsIgnoreCase 차이 (0) | 2023.06.12 |
OS 6이하에서 벡터 이미지 제대로 안나오는 문제 (0) | 2023.05.11 |
Android 갤러리 contentResolver DATE_TAKEN 문제 (0) | 2023.05.10 |
안드로이드 에뮬레이터 먹통이 되었을 때 (0) | 2023.04.25 |