无论如何可以将 viewStubs 与 dataBinding 一起使用吗?ViewStubProxy 可以提供帮助吗?
我的存根电流如下所示:
<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="@{myobject.bottom ? bottom:top}" />
但是当我膨胀 viewStub 时,这个布局将被替换,那么 ViewStubs 如何与 android dataBinding 一起使用?
这是我从文档中看到的:
查看存根
ViewStubs 与普通的 Views 有点不同。它们一开始是不可见的,当它们变得可见或被明确告知膨胀时,它们会通过膨胀另一个布局来替换布局中的自己。
因为 ViewStub 本质上从 View 层次结构中消失了,绑定对象中的 View 也必须消失才能允许收集。因为 Views 是最终的,所以 ViewStubProxy 对象代替了 ViewStub,当 ViewStub 存在时,开发人员可以访问它,并且当 ViewStub 膨胀时,还可以访问膨胀的 View 层次结构。
当膨胀另一个布局时,必须为新布局建立绑定。因此,ViewStubProxy 必须监听 ViewStub 的 ViewStub.OnInflateListener 并在此时建立绑定。由于只能存在一个,因此 ViewStubProxy 允许开发人员在其上设置一个 OnInflateListener ,它将在建立绑定后调用。