Use Binding class's inflate as recommended in Android Documentation.
In DataBindingUtil class documentation you can see.
inflate
T inflate (LayoutInflater inflater,
int layoutId,
ViewGroup parent,
boolean attachToParent)
Use this version only if layoutId is unknown in advance. Otherwise, use the generated Binding's inflate method to ensure type-safe
inflation.
One option is to inflate by DataBindingUtil but when only you don't have generated binding class.
You have generated binding class, use that class instead of using DataBindingUtil.
In Java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
HomeFragmentBinding binding = HomeFragmentBinding.inflate(inflater, container, false);
//set binding variables here
return binding.getRoot();
}
In Kotlin
lateinit var binding: HomeFragmentBinding
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = HomeFragmentBinding.inflate(inflater, container, false)
return binding.root
}
If your layout biniding class is not generated @See this answer.