在Android SDK中有两个公共接口:LayoutInflater.Factory
和 LayoutInflater.Factory2
,但官方文档对这些接口没有提供有用的信息,甚至包括LayoutInflater
文档。
根据源代码,如果设置了Factory2
,则会使用它,否则会使用Factory
:
View view;
if (mFactory2 != null) {
view = mFactory2.onCreateView(parent, name, context, attrs);
} else if (mFactory != null) {
view = mFactory.onCreateView(name, context, attrs);
} else {
view = null;
}
setFactory2()
的文档也非常简洁:
/**
* Like {@link #setFactory}, but allows you to set a {@link Factory2}
* interface.
*/
public void setFactory2(Factory2 factory) {
如果我想将自定义工厂设置给 LayoutInflater
,我应该使用哪个工厂?它们之间有什么区别?