有没有理由不使用 DataBindingUtil.inflate?
Are there reasons not to use DataBindingUtil.inflate?
将片段绑定到布局时,两种最常见的方式 (AFAIK) 是:
FragmentMyexampleBinding binding = FragmentMyExampleBinding.inflate(inflater, container, false)
或
FragmentMyexampleBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_my_example, container, false)
所以我的问题是,除了语句更短之外,第一种方式的优势是什么?
使用DataBindingUtil并传入一个布局文件让AndroidStudio知道哪个布局文件是相关的并生成布局文件的快捷方式图标,也让AndroidStudio可以快速找到所有对布局文件的引用如果你想重命名它。有什么理由不这样做吗?
DataBindingUtil.inflate
的文档是这样说的
Use this version only if layoutId is unknown in advance. Otherwise,
use the generated Binding's inflate method to ensure type-safe
inflation.
所以 FragmentMyExampleBinding.inflate
的主要优点是可以保证类型安全。 DataBindingUtil.inflate
方法必须在 "hocus pocus" 在 运行 的时候做一些事情来确定 return 的类型,并且有可能出现问题。
总而言之,虽然没有任何理由不使用 DataBindingUtil.inflate
,但至少有一个理由可以
使用 FragmentMyExampleBinding.inflate
而不是 DataBindingUtil.inflate
将片段绑定到布局时,两种最常见的方式 (AFAIK) 是:
FragmentMyexampleBinding binding = FragmentMyExampleBinding.inflate(inflater, container, false)
或
FragmentMyexampleBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_my_example, container, false)
所以我的问题是,除了语句更短之外,第一种方式的优势是什么?
使用DataBindingUtil并传入一个布局文件让AndroidStudio知道哪个布局文件是相关的并生成布局文件的快捷方式图标,也让AndroidStudio可以快速找到所有对布局文件的引用如果你想重命名它。有什么理由不这样做吗?
DataBindingUtil.inflate
的文档是这样说的
Use this version only if layoutId is unknown in advance. Otherwise, use the generated Binding's inflate method to ensure type-safe inflation.
所以 FragmentMyExampleBinding.inflate
的主要优点是可以保证类型安全。 DataBindingUtil.inflate
方法必须在 "hocus pocus" 在 运行 的时候做一些事情来确定 return 的类型,并且有可能出现问题。
总而言之,虽然没有任何理由不使用 DataBindingUtil.inflate
,但至少有一个理由可以
FragmentMyExampleBinding.inflate
而不是 DataBindingUtil.inflate