有没有理由不使用DataBindingUtil.inflate?

时间:2016-09-22 02:36:08

标签: android-databinding

将片段绑定到布局时,最常用的两种方法(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快速找到对布局文件的所有引用。有没有理由不这样做?

1 个答案:

答案 0 :(得分:2)

DataBindingUtil.inflate的文档说明了这个

  

仅在事先未知layoutId时才使用此版本。除此以外,   使用生成的Binding的inflate方法来确保类型安全   充气。

因此FragmentMyExampleBinding.inflate的主要优点是保证了类型安全。 DataBindingUtil.inflate方法必须在运行时做一些“hocus pocus”,以确定要返回的类型,并且有可能出现问题。

总而言之,虽然没有任何理由不使用DataBindingUtil.inflate,但至少有一个理由可以使用FragmentMyExampleBinding.inflate而不是DataBindingUtil.inflate