인프런 커뮤니티 질문&답변

아요님의 프로필 이미지
아요

작성한 질문수

냉동코더의 알기 쉬운 Modern Android Development 입문

Practice2A-앱 초기구조 작성하기 (View Binding, BottomNavigationVIew)

binding or 프레그먼트 기본 구조가 이해가안가서 질문드립니다

작성

·

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()으로 널러블이 아닌것을 보장해준 다음에 사용하는 것입니다.

  1. _binding으로 초기화 한뒤 binding get()으로 _binding을 받아오는 것이 맞습니다.

  2. 클래스 초기화는 _binding 으로 하고 실제 뷰의 사용은 binding으로 하는 것이 맞습니다.

 

ViewBinding 기초 의 뒷부분이 프래그먼트에서 뷰 바인딩을 사용하는 부분의 설명이니 한 번 더 강의를 보시는 것도 좋을 것 같아요 :)

아요님의 프로필 이미지
아요

작성한 질문수

질문하기