Modern Android Development
Modern Android Development - ViewBinding(뷰바인딩) 하는 방법 (Java/Kotlin) - Activity/Fragment 22.05.23 버전
스텝바이스텝안드로이드
2021. 3. 28. 16:21
1. Java
step1. 먼저 build.gradle(:app)에
buildFeatures {
viewBinding = true
}
위와 같은 속성을 추가해준다.
step2.
액티비티 전역에 바인딩 변수를 선언해주고
ActivityMainBinding binding = null;
onCreate에서 연결해주면 된다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
}
2. Kotlin
step1은 동일하다.
step2
* 액티비티에서 사용하는 경우
변수 선언 및 onCreate에서 적용
private lateinit var binding: ResultProfileBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ResultProfileBinding.inflate(layoutInflater)
setContentView(binding.root)
}
위 경우 destroy시 자동으로 삭제 되는 듯 하다.
* 프래그먼트에서 사용하는 경우
변수 선언 및 적용
private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = ResultProfileBinding.inflate(inflater, container, false)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
프래그먼트에서 사용하는 경우 꼭 onDestroyView에서 삭제를 해줘야 메모리 낭비를 줄일 수 있다고 함