I used before view Binding to bind layout with activity or fragment, I saw that after Fragment 1.1.0 we can bind layout in constructor, which is performance. What android says.
Activity
With binding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
With constructor
class MainActivity : AppCompatActivity(R.layout.activity_main)
Fragment
With binding
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
}
}
With constructor
class MyFragment: Fragment(R.layout.my_fragment) {
private var _binding: MyFragmentBinding? = null
private val binding get() = _binding!!
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
_binding = MyFragmentBinding.bind(view)
}
}