我目前使用DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)
方法为我的大多数布局充气。
但是我看到他们是AsyncLayoutInflater
,因为Support Library revision 24
允许通货膨胀发生在一个单独的线程上。我想在我的应用程序的某些部分使用此机制,但我不想放弃使用databinding
。
DataBindingUtil
不包含inflateAsync()
之类的任何方法。但它是否计划为此添加支持?或者他们是一种结合AsyncLayoutInflater
和使用databinding
?
我尝试使用inflate
DataBindingUtil
方法中的AsyncLayoutInflater
,但实际上AsyncLayoutInflater
不是原始LayoutInflater
的子类。
感谢您的阅读!
答案 0 :(得分:4)
您可以使用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);
}
});
答案 1 :(得分:0)
没有办法将AsyncLayoutInflater
用于数据绑定,但我的问题是,它实际上有用吗?异步扩展布局可能有其优点,但是如果您正在使用数据绑定,那么当您尝试将数据绑定到视图时,可能会冒着视图未被夸大的风险,因为没有{{1}这样的方法}。