From a Google Codelab (can't remember which one), they adviced doing the following for fragments:

```
class MyFragment : Fragment() {

    private var _binding: MyFragmentBinding? = null
    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View {
        _binding = MyFragmentBinding.inflate(inflater, container, false)

        return binding.root
    }

    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }

}

```

And then accessing the views with e.g. `binding.button1`.

Is there a specific reason for doing it like this, with *\_binding* and *binding*? Are there better methods? Perhaps an extension for Fragments - like a BaseFragment - to avoid code duplication.