将 AsyncLayoutInflater 与 DataBinding 结合使用
Use AsyncLayoutInflater with DataBinding
我目前使用 DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)
方法膨胀我的大部分布局。
但我看到它们是 AsyncLayoutInflater
,因为 Support Library revision 24
允许 inflation 在单独的线程上发生。我想在我的应用程序的某些部分使用这种机制,但我不想为此放弃使用 databinding
。
DataBindingUtil
不包含任何像 inflateAsync()
这样的方法。但它是否计划为此添加支持?或者他们是一种结合 AsyncLayoutInflater
和使用 databinding
的方法?
我尝试在 DataBindingUtil
的 inflate
方法中使用 AsyncLayoutInflater
但实际上 AsyncLayoutInflater
不是原始 LayoutInflater
的子类。
感谢阅读!
无法将 AsyncLayoutInflater
与数据绑定一起使用,但我的问题是,它真的有用吗?异步扩充布局有它的优势,但如果您正在使用数据绑定,那么当您尝试将数据绑定到视图时,您 运行 存在视图未被扩充的风险,因为没有诸如waitForBinding()
.
您可以只使用 DataBindingUtil.bind(view)
绑定到展开布局的根目录。
new AsyncLayoutInflater(this).inflate(R.layout.my_layout, null, new AsyncLayoutInflater.OnInflateFinishedListener() {
@Override
public void onInflateFinished(@NonNull View view, int resid, @Nullable ViewGroup parent) {
MyLayoutBinding binding = DataBindingUtil.bind(view);
}
});
我目前使用 DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)
方法膨胀我的大部分布局。
但我看到它们是 AsyncLayoutInflater
,因为 Support Library revision 24
允许 inflation 在单独的线程上发生。我想在我的应用程序的某些部分使用这种机制,但我不想为此放弃使用 databinding
。
DataBindingUtil
不包含任何像 inflateAsync()
这样的方法。但它是否计划为此添加支持?或者他们是一种结合 AsyncLayoutInflater
和使用 databinding
的方法?
我尝试在 DataBindingUtil
的 inflate
方法中使用 AsyncLayoutInflater
但实际上 AsyncLayoutInflater
不是原始 LayoutInflater
的子类。
感谢阅读!
无法将 AsyncLayoutInflater
与数据绑定一起使用,但我的问题是,它真的有用吗?异步扩充布局有它的优势,但如果您正在使用数据绑定,那么当您尝试将数据绑定到视图时,您 运行 存在视图未被扩充的风险,因为没有诸如waitForBinding()
.
您可以只使用 DataBindingUtil.bind(view)
绑定到展开布局的根目录。
new AsyncLayoutInflater(this).inflate(R.layout.my_layout, null, new AsyncLayoutInflater.OnInflateFinishedListener() {
@Override
public void onInflateFinished(@NonNull View view, int resid, @Nullable ViewGroup parent) {
MyLayoutBinding binding = DataBindingUtil.bind(view);
}
});