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)
   }
}
0

There are 0 best solutions below