将片段绑定到布局时,最常用的两种方法(AFAIK)是:
FragmentMyexampleBinding binding = FragmentMyExampleBinding.inflate(inflater, container, false)
或
FragmentMyexampleBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_my_example, container, false)
所以我的问题是,除了声明更短之外,第一种方式的优点是什么呢?
使用DataBindingUtil并传入布局文件,Android Studio可以知道哪个布局文件是相关的,并生成布局文件的快捷图标,如果您想要重命名它,它还允许Android Studio快速找到对布局文件的所有引用。有没有理由不这样做?
答案 0 :(得分:2)
DataBindingUtil.inflate
的文档说明了这个
仅在事先未知layoutId时才使用此版本。除此以外, 使用生成的Binding的inflate方法来确保类型安全 充气。
因此FragmentMyExampleBinding.inflate
的主要优点是保证了类型安全。 DataBindingUtil.inflate
方法必须在运行时做一些“hocus pocus”,以确定要返回的类型,并且有可能出现问题。
总而言之,虽然没有任何理由不使用DataBindingUtil.inflate
,但至少有一个理由可以使用FragmentMyExampleBinding.inflate
而不是DataBindingUtil.inflate