将AsyncLayout Inflater用于数据绑定

我目前使用DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)方法膨胀我的大部分布局。

但我看到它们是一个AsyncLayoutInflater,因为Support Library revision 24允许在单独的线程上发生膨胀。我希望在我的应用程序的某些部分使用此机制,但我不想为此放弃使用databinding

DataBindingUtil不包含任何类似inflateAsync()的方法。但它是否计划增加对这一点的支持?或者它们是同时使用AsyncLayoutInflaterdatabinding的一种方式吗?

我尝试在DataBindingUtilinflate方法中使用AsyncLayoutInflater,但实际上AsyncLayoutInflater不是原始LayoutInflater的子类。

感谢您的阅读!


解决方案

您可以只使用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);
    }
});

相关文章