작성
·
571
0
이전에 LiveData를 다룰 때는
private val _mutableLiveData ...
val liveData = _mutableLiveData
이런식으로 get()을 쓰지 않아도 오류가 발생하지 않았던 것 같은데
BookFragment에서 뷰 바인딩을 사용할 때는 get()을 쓰지 않고
private val binding = _binding!!
와 같이 get()을 쓰지 않으면 앱이 could not find Fragment Constructor 오류를 뱉으며 죽습니다.
이유가 무엇인지 궁금합니다.
답변 2
1
0
`get()` 과 `Assignment (=)`의 차이를 생각해 보면 이유를 짐작할 수 있을 것 같습니다.
`Assignment (=)`를 사용하면 필드값이 바로 지정값으로 할당되지만 `get()`은 값을 할당하지 않고 게터 함수만을 생성하게 됩니다. 구체적인 차이에 대해서는 다음 블로그를 참조해 보세요. https://gift123.tistory.com/59
따라서 `private val binding = _binding!!` 으로 설정하면 onCreateView 이전에 binding의 필드값이 null로 고정되어 버려서 프래그먼트 생성에 실패하는 거 아닐까 싶네요.