将AsyncLayoutInflater与DataBinding一起使用

时间:2018-03-27 15:01:47

标签: android asynchronous layout-inflater android-databinding

我目前使用DataBindingUtil.inflate(inflater, layoutId, parent, attachToParent)方法为我的大多数布局充气。

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

DataBindingUtil不包含inflateAsync()之类的任何方法。但它是否计划为此添加支持?或者他们是一种结合AsyncLayoutInflater和使用databinding

的方法

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

感谢您的阅读!

2 个答案:

答案 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}这样的方法}。