【发布时间】:2016-04-15 06:07:43
【问题描述】:
是否可以将 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 一起使用?
这是我从docs看到的:
视图存根
ViewStub 与普通 View 略有不同。他们开始 不可见,并且当它们变得可见或被明确告知时 膨胀,他们通过膨胀另一个来替换布局中的自己 布局。
因为 ViewStub 基本上从 View 层次结构中消失了, 绑定对象中的视图也必须消失以允许 收藏。因为视图是最终的,所以 ViewStubProxy 对象需要 ViewStub 的位置,使开发人员可以访问 ViewStub 当它存在并且还可以访问膨胀的视图层次结构时 ViewStub 已膨胀。
当膨胀另一个布局时,必须为 新版面。因此,ViewStubProxy 必须监听 ViewStub 的 ViewStub.OnInflateListener 并建立当时的绑定。 由于只能存在一个,ViewStubProxy 允许开发人员 在其上设置一个 OnInflateListener ,它将在建立后调用 绑定。
【问题讨论】:
标签: android data-binding viewstub