안드로이드 viewBinding


build.gradle (app:)

android {
   ...
   viewBinding {
      enabled = true
   }
}

Activity 에서…

private lateinit var binding: ResultProfileBinding

override fun onCreate(savedInstanceState: Bundle) {
    super.onCreate(savedInstanceState)
    binding = ResultProfileBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view)
}   
binding.name.text = viewModel.name
binding.button.setOnClickListener { viewModel.userClicked() }

Fragment 에서…

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)
    val view = binding.root
    return view
}

override fun onDestroyView() {
    super.onDestroyView()
    _binding = null
}
    
binding.name.text = viewModel.name
binding.button.setOnClickListener { viewModel.userClicked() }    

특정 layout 에서는 viewBinding을 하고 싶지않다면…

<LinearLayout
    ...
    tools:viewBindingIgnore="true" >
    ...
</LinearLayout>
    

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다