작성
·
141
0
private var _binding: FragmentSearchBinding? = null private val binding get() = binding!!
부분에서 binding 을 인식하고 라고하셨는데
질문 1.
_binding 의 값은 밑에 get() = binding!! 부분에서 받아 오는(인식하는) 건가요?
질문 2.
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _binding = FragmentSearchBinding.inflate(inflater, container, false) return binding.root }
이 부분소스 구동이 잘 이해가 안가서 ㅠㅠ
생명주기에 의해서 onCreateView 는 View 를 상속 받는데
_binding = FragmentSearchBinding.inflate(inflater, container, false 파라미터를 받고 binding root를 반환(지정)해주는건가요?
// 죄송합니다 ㅠㅠ 이부분이 잘 이해가안가서..
답변 1
0
프래그먼트는 액티비티와 달리 앱 안에서 파괴될 수 있는데 그 경우 binding 자원을 해제해주어야 합니다. 그래서 여기서는 _binding으로 바인딩클래스의 널러블 인스턴스를 만들지만, 프래그먼트 안에서 사용할 때는 널러블이면 안되기 때문에 binding get()으로 널러블이 아닌것을 보장해준 다음에 사용하는 것입니다.
_binding으로 초기화 한뒤 binding get()으로 _binding을 받아오는 것이 맞습니다.
클래스 초기화는 _binding 으로 하고 실제 뷰의 사용은 binding으로 하는 것이 맞습니다.
ViewBinding 기초 의 뒷부분이 프래그먼트에서 뷰 바인딩을 사용하는 부분의 설명이니 한 번 더 강의를 보시는 것도 좋을 것 같아요 :)