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>